java xml map 方法_JAVA XML转换MAP 方法
在开发过程中会调用soap接口,返回的数据就是xml形式,那么久需要对xml进行解析,对xml操作大家都还是比较不是很熟悉相比对于map的操作。所以我提供了这么一个方法,让大家对xml数据提取,转换成对map数据提取。
下面是import 的jar 包,一定要引用对,刚开始做的时候,好多Document包,比较困扰,索性我直接贴出来减少不必要的麻烦。
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
/**
* xml to map.
* void.
* think.
*
* @param rootElement
* @param map
*/
public static void findAndPutElement(Element rootElement, Map map) {
if (null == rootElement){
return;
}
@SuppressWarnings("unchecked")
List elementList = rootElement.elements();
for (Element e : elementList) {
if (null != map.get(e.getName())){
}
Object tempObj = null;
if (e.elements().size() < 1){
tempObj = e.getStringValue();
} else {
Map innerMap = new HashMap();
findAndPutElement(e, innerMap);
tempObj = innerMap;
}
if (null == map.get(e.getName())){
map.put(e.getName(), tempObj);
} else if (map.get(e.getName()) instanceof List){
@SuppressWarnings("unchecked")
List obj = (List) map.get(e.getName());
obj.add(tempObj);
} else{
List objList = new LinkedList();
objList.add(map.get(e.getName()));
objList.add(tempObj);
map.put(e.getName(), objList);
}
}
}
正如上面代码所示,将简单的xml 进行格式化,封装到map结构中,输入根节点,然后输入结果map就可以了。下面是待处理xml:
参考测试代码:
public static void main(String [] argv){
String xmlStr1 = "success1134rfsadf2223666666";
try {
Document document = DocumentHelper.parseText(xmlStr1);
Element root = document.getRootElement();
Map resultMap = new HashMap();
findAndPutElement(root, resultMap);
System.out.print(resultMap);
} catch (Exception e) {
e.printStackTrace();
}
}
下面是生成Map结构参考结果:
{
Status={
resultMsg=1,
result=success,
resCode=1
},
records={
record={
userInfo={
numInfos={
numInfo=[
{
indentNbrType=23,
indentNbr=22
},
{
indentNbrType=6666,
indentNbr=66
}
]
},
id=3,
name=4,
Remarks=rfsadf
}
}
}
}
后续会更新 字段包含属性的情况。如下:
期待后续更新~
java xml map 方法_JAVA XML转换MAP 方法相关推荐
- java的map集合_Java集合之Map
正文 Map的特点? 通过Map接口的泛型我们可以看出:Map一次添加一对元素,存储的是键值对:而Collection接口一次添加一个元素. Map接口中的key是唯一的. Map的常见方法? 1.添 ...
- java xml解析器_Java XML解析器
java xml解析器 Java XML parser is used to work with xml data. XML is widely used technology to transpor ...
- stream map方法_Java Stream中map和flatMap方法
最近看到一篇讲stream语法的文章,学习Java中map()和flatMap()方法之间的区别. 虽然看起来这两种方法都做同样的事情,都是做的映射操作,但实际上差之毫厘谬以千里. 通过演示Demo中 ...
- java 定义map集合_Java中的Map集合
Map集合: 个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法.特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合.不过定义 ...
- java 解析标记语言_Java XML可扩展标记语言(eXtensible Markup Language)
一.XMl 1.1.XML简介: XML指可扩展标记语言(eXtensible Markup Language),它是一种很像HTML的标记语言.XML的设计宗旨是传输数据,焦点是数据的内容,而HTM ...
- java一般方法有哪些方法有哪些方法_Java代码优化有哪些方法?
Java代码优化是Java编程开发很重要的一个步骤,Java代码优化要注重细节优化,一个两个的细节的优化,产生的效果不大,但是如果处处都能注意代码优化,对代码减少体积.提高代码运行效率是有巨大帮助的, ...
- java 反射调用set方法_java反射调用set方法时如果让参数做自动类型转换
这段时间学习java的反射机制想实现一个功能:遍历一个Map,然后利用反射机制调用BO的set方法,完成BO属性的自动注入.这样设计的初衷是解决Excel数据导入问题中的Map数据填充BO这一过程. ...
- java工厂方法_Java设计模式之工厂方法模式
2.工厂方法模式 <设计模式之禅>中用神话故事女娲造人来比概述工厂方法模式. 女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放置到大地上生长,工艺过程是没有错的,但是意外随时都会发生 ...
- java 定时执行方法_Java定时执行任务 方法总结
JAVA技巧(Java定时执行任务的实现方法)2009年02月07日 星期六 10:36定时执行任务的三种方法: 1)java.util.Timer. 2)ServletContextListener ...
最新文章
- 关于window.localtion的用法几点总结
- 使用np.load()加载数据 报错 Object arrays cannot be loaded when allow_pickle=False
- 聊聊rocketmq的ProducerImpl
- 解决 Oralce 执行set autotrace on时的SP2-0618和SP2-0611错误
- mysql安装使用--2 用户管理
- cadence 旋转快捷键_cadence原理图快捷键
- 面试精讲之面试考点及大厂真题 - 分布式专栏 05 公司使用什么RPC框架,聊聊你理解的RPC原理
- Eclipse安装UML 插件
- geitee仓库项目拉到(克隆到)本地
- LeetCode - 不错的题目 - Longest Consecutive Sequence
- css的盒子模型以及布局(面试考点)
- 【云栖精选】6篇深度!解除MySQL数据同步疑惑+Docker技术示例
- 【十大IDE】 解决你不懂英文的痛苦
- 【Redis-6.0.8】Redis中的RAX
- 调整字体间距属性和文字换行属性
- C#环境下GDAL / OGR环境配置与入门
- 为什么要用Qt开发(Qt跨平台应用开发)
- 基于RFID定位技术下的工地人员定位,高精准工地人员定位--新导智能
- bim建筑绘图计算机要求,bim考试相关要求
- 洛谷P1010 [NOIP1998 普及组] 幂次方 题解