博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDOM xml转map
阅读量:7107 次
发布时间:2019-06-28

本文共 2733 字,大约阅读时间需要 9 分钟。

  hot3.png

public class XmlUtil {	@SuppressWarnings({ "rawtypes", "unchecked" })	public static Map xml2Map(String xml) throws JDOMException, IOException {		Map map = new HashMap();		StringReader reader = new StringReader(xml);		SAXBuilder builder = new SAXBuilder();		Document build = builder.build(reader);		Element root = build.getRootElement();		List
 elements = root.getChildren(); for (Element e : elements) { List
 cs = e.getChildren(); if (cs.isEmpty()) { map.put(e.getName(), e.getText()); } else { map.put(e.getName(), ele2Map(e)); } } return map; } @SuppressWarnings({ "rawtypes", "unchecked" }) public static Map ele2Map(Element e) { Map map = new HashMap(); List list = e.getChildren(); if (list.size() > 0) { for (int i = 0; i < list.size(); i++) { Element iter = (Element) list.get(i); List mapList = new ArrayList(); if (iter.getChildren().size() > 0) { Map m = ele2Map(iter); if (map.get(iter.getName()) != null) { Object obj = map.get(iter.getName()); if (!obj.getClass().getName().equals("java.util.ArrayList")) { mapList = new ArrayList(); mapList.add(obj); mapList.add(m); } if (obj.getClass().getName().equals("java.util.ArrayList")) { mapList = (List) obj; mapList.add(m); } map.put(iter.getName(), mapList); } else map.put(iter.getName(), m); } else { if (map.get(iter.getName()) != null) { Object obj = map.get(iter.getName()); if (!obj.getClass().getName().equals("java.util.ArrayList")) { mapList = new ArrayList(); mapList.add(obj); mapList.add(iter.getText()); } if (obj.getClass().getName().equals("java.util.ArrayList")) { mapList = (List) obj; mapList.add(iter.getText()); } map.put(iter.getName(), mapList); } else map.put(iter.getName(), iter.getText()); } } } else map.put(e.getName(), e.getText()); return map; } public static void main(String[] args) throws JDOMException, IOException { String xml = "
" +"
" +"
" +"
" +"
1300511110031100200000101
" +"
10000001
" +"
" +"
" +"
1300511110031100200000102
" +"
10000002
" +"
" +"
" +"
"; Map map = xml2Map(xml); System.out.println(map); }}

运行结果(注意如果无ROOT节点结果只会有一个PRODUCT)

{PRODUCTS={PRODUCT=[{NAME=10000001, PRODUCT_ID=1300511110031100200000101}, {NAME=10000002, PRODUCT_ID=1300511110031100200000102}]}}

JDOM依赖

    
org.jdom
    
jdom
    
1.1.3

转载于:https://my.oschina.net/u/1778309/blog/488981

你可能感兴趣的文章
c++类型转换
查看>>
开发人员如何转型做产品经理
查看>>
Ubuntu 下控制台和UI切换
查看>>
6、Kafka问题总结
查看>>
网络计划---网络计划图
查看>>
SVN 基本命令
查看>>
RTP协议分析
查看>>
boost_asio学习笔记[2] - 客户端异步通讯
查看>>
lucene全文搜索之排序
查看>>
SpringBoot之数据访问
查看>>
iOS逆向问题集锦
查看>>
python正则提取特定标签内的字符
查看>>
转:Android屏幕适配经验谈
查看>>
jquery ajax get post 的使用方法汇总
查看>>
50个必备的实用jQuery代码段
查看>>
网站安装打包 修改app.config[六]
查看>>
git 安装使用
查看>>
hive 分区表、桶表和外部表
查看>>
eclipse查看java方法域
查看>>
Linux系统究竟我要怎样学?
查看>>