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

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

hot3.png

 import java.io.FileInputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import com.google.gson.Gson;import com.thoughtworks.xstream.XStream;public class Test { public static void main(String[] args) throws Exception {  XStream xs = new XStream();  FileInputStream fis = new FileInputStream("E:/GitWorkspace/eap-dop/exp-dop/src/main/java/version.xml");  byte[] b = new byte[fis.available()];  fis.read(b);  String str = new String(b);  Document doc = DocumentHelper.parseText(str);  long beginTime = System.currentTimeMillis();  Map
 map = Test.Dom2Map(doc);  System.out.println(new Gson().toJson(map)); } public static Map
 Dom2Map(Document doc) {  Map
 map = new HashMap
();  if (doc == null) {   return map;  }  Element root = doc.getRootElement();  for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {   Element e = (Element) iterator.next();   List list = e.elements();   if (list.size() > 0) {    map.put(e.getName(), Test.Dom2Map(e));   } else {    map.put(e.getName(), e.getText());   }  }  return map; } public static Map Dom2Map(Element e) {  Map map = new HashMap();  List list = e.elements();  if (list.size() > 0) {   for (int i = 0; i < list.size(); i++) {    Element iter = (Element) list.get(i);    List mapList = new ArrayList();    if (iter.elements().size() > 0) {     Map m = Test.Dom2Map(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; }}

转载于:https://my.oschina.net/857359351/blog/411408

你可能感兴趣的文章
Office提示由于本机的限制该操作已被取消怎么办
查看>>
Google Earth网页版初探
查看>>
Mysql数据库连接池知识分享
查看>>
SpringMVC 拦截请求,判断会话是否超时
查看>>
网站前端_KindEditor.基础入门.0001.KindEditor_3.4.2快速入门?
查看>>
android拍照并通过Http发送到Java后台
查看>>
ubuntu安装nginx-1.8.0.tar.gz
查看>>
魔兽争霸3地图(WarIII Maps):妖皇传说
查看>>
grub2正确配置——硬盘安装ubuntu 9.10之后不能启动xp解决方法
查看>>
PHP isset()与empty()的使用区别详解
查看>>
mysql 修改数据库的时区
查看>>
MyBatis 通过包含的jdbcType类型
查看>>
Web应用中的中文问题
查看>>
with as 中绑定变量的使用
查看>>
时间:2014年4月8日17:01:10 GD完成验证码
查看>>
mysql主从同步
查看>>
微信机器人高级版常见问题汇总
查看>>
容器技术|Docker三剑客之docker-machine
查看>>
Masonry 第三方框架页面自动布局
查看>>
博客转移声明
查看>>