在开发过程中会调用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 方法相关推荐

  1. java的map集合_Java集合之Map

    正文 Map的特点? 通过Map接口的泛型我们可以看出:Map一次添加一对元素,存储的是键值对:而Collection接口一次添加一个元素. Map接口中的key是唯一的. Map的常见方法? 1.添 ...

  2. java xml解析器_Java XML解析器

    java xml解析器 Java XML parser is used to work with xml data. XML is widely used technology to transpor ...

  3. stream map方法_Java Stream中map和flatMap方法

    最近看到一篇讲stream语法的文章,学习Java中map()和flatMap()方法之间的区别. 虽然看起来这两种方法都做同样的事情,都是做的映射操作,但实际上差之毫厘谬以千里. 通过演示Demo中 ...

  4. java 定义map集合_Java中的Map集合

    Map集合: 个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法.特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合.不过定义 ...

  5. java 解析标记语言_Java XML可扩展标记语言(eXtensible Markup Language)

    一.XMl 1.1.XML简介: XML指可扩展标记语言(eXtensible Markup Language),它是一种很像HTML的标记语言.XML的设计宗旨是传输数据,焦点是数据的内容,而HTM ...

  6. java一般方法有哪些方法有哪些方法_Java代码优化有哪些方法?

    Java代码优化是Java编程开发很重要的一个步骤,Java代码优化要注重细节优化,一个两个的细节的优化,产生的效果不大,但是如果处处都能注意代码优化,对代码减少体积.提高代码运行效率是有巨大帮助的, ...

  7. java 反射调用set方法_java反射调用set方法时如果让参数做自动类型转换

    这段时间学习java的反射机制想实现一个功能:遍历一个Map,然后利用反射机制调用BO的set方法,完成BO属性的自动注入.这样设计的初衷是解决Excel数据导入问题中的Map数据填充BO这一过程. ...

  8. java工厂方法_Java设计模式之工厂方法模式

    2.工厂方法模式 <设计模式之禅>中用神话故事女娲造人来比概述工厂方法模式. 女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放置到大地上生长,工艺过程是没有错的,但是意外随时都会发生 ...

  9. java 定时执行方法_Java定时执行任务 方法总结

    JAVA技巧(Java定时执行任务的实现方法)2009年02月07日 星期六 10:36定时执行任务的三种方法: 1)java.util.Timer. 2)ServletContextListener ...

最新文章

  1. 关于window.localtion的用法几点总结
  2. 使用np.load()加载数据 报错 Object arrays cannot be loaded when allow_pickle=False
  3. 聊聊rocketmq的ProducerImpl
  4. 解决 Oralce 执行set autotrace on时的SP2-0618和SP2-0611错误
  5. mysql安装使用--2 用户管理
  6. cadence 旋转快捷键_cadence原理图快捷键
  7. 面试精讲之面试考点及大厂真题 - 分布式专栏 05 公司使用什么RPC框架,聊聊你理解的RPC原理
  8. Eclipse安装UML 插件
  9. geitee仓库项目拉到(克隆到)本地
  10. LeetCode - 不错的题目 - Longest Consecutive Sequence
  11. css的盒子模型以及布局(面试考点)
  12. 【云栖精选】6篇深度!解除MySQL数据同步疑惑+Docker技术示例
  13. 【十大IDE】 解决你不懂英文的痛苦
  14. 【Redis-6.0.8】Redis中的RAX
  15. 调整字体间距属性和文字换行属性
  16. C#环境下GDAL / OGR环境配置与入门
  17. 为什么要用Qt开发(Qt跨平台应用开发)
  18. 基于RFID定位技术下的工地人员定位,高精准工地人员定位--新导智能
  19. bim建筑绘图计算机要求,bim考试相关要求
  20. 洛谷P1010 [NOIP1998 普及组] 幂次方 题解

热门文章

  1. linux修改ip广播地址,Linux设置查看静态IP之ifconfig命令
  2. Android开发之Android性能优化记录
  3. iOS 开发和部署过程概述
  4. 使用element ui 日期选择器获取值后的格式问题
  5. 对接口编程:接口和抽象类
  6. android sdk更新代理设置
  7. hdu 1880 魔咒词典
  8. 二叉排序树的C++实现(过程式)
  9. Windows Server Core管理之WinRM
  10. 调查一下 大家用vs时做网页时,都用的什么标准?