XML转map

前端之家收集整理的这篇文章主要介绍了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.f2er.com/xml/296829.html

猜你在找的XML相关文章