微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XML转map

importjava.io.FileInputStream;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Map;
importorg.dom4j.Document;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
importcom.google.gson.Gson;
importcom.thoughtworks.xstream.XStream;
publicclasstest{
publicstaticvoidmain(String[]args)throwsException{
XStreamxs=newXStream();
FileInputStreamfis=newFileInputStream("E:/GitWorkspace/eap-dop/exp-dop/src/main/java/version.xml");
byte[]b=newbyte[fis.available()];
fis.read(b);
Stringstr=newString(b);
Documentdoc=DocumentHelper.parseText(str);
longbeginTime=System.currentTimeMillis();
Map<String,Object>map=Test.Dom2Map(doc);
System.out.println(newGson().toJson(map));
}
publicstaticMap<String,Object>Dom2Map(Documentdoc){
Map<String,Object>map=newHashMap<String,Object>();
if(doc==null){
returnmap;
}
Elementroot=doc.getRootElement();
for(Iteratoriterator=root.elementIterator();iterator.hasNext();){
Elemente=(Element)iterator.next();
Listlist=e.elements();
if(list.size()>0){
map.put(e.getName(),Test.Dom2Map(e));
}else{
map.put(e.getName(),e.getText());
}
}
returnmap;
}
publicstaticMapDom2Map(Elemente){
Mapmap=newHashMap();
Listlist=e.elements();
if(list.size()>0){
for(inti=0;i<list.size();i++){
Elementiter=(Element)list.get(i);
ListmapList=newArrayList();
if(iter.elements().size()>0){
Mapm=Test.Dom2Map(iter);
if(map.get(iter.getName())!=null){
Objectobj=map.get(iter.getName());
if(!obj.getClass().getName().equals("java.util.ArrayList")){
mapList=newArrayList();
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){
Objectobj=map.get(iter.getName());
if(!obj.getClass().getName().equals("java.util.ArrayList")){
mapList=newArrayList();
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(),iter.getText());
}
}
}
}else{
map.put(e.getName(),e.getText());
}
returnmap;
}
}

原文地址:https://www.jb51.cc/xml/296829.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。