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.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class XmlUtils {
public static Map Str2Map(String str){
try {
// long beginTime = System.currentTimeMillis();
Document doc = DocumentHelper.parseText(str);
// System.out.println(doc.asXML());
Map map = XmlUtils.Dom2Map(doc);
// System.out.println(map.toString());
// System.out.println("Use time:"+(System.currentTimeMillis()-beginTime));
return map;
} catch (DocumentException e) {
e.printStackTrace();
}
return null;
}
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(), Dom2Map(e));
}else
map.put(e.getName(), e.getText());
}
return map;
}
@SuppressWarnings("unchecked")
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 = 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;
} 0
0
相关文章
VBScript怎么操作XML文件 MSXML2.DOMDocument
医疗HL7 v2消息如何映射成XML?
XML编码是什么 如何处理UTF-8和GBK等编码问题
SnapLogic的XML Formatter使用
VBScript如何上传XML文件 MSXML2.XMLHTTP对象怎么用
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
Golang 性能分析与pprof调优实战
本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。
9
2026.01.22
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
Swoft2.x速学之http api篇课程
共16课时 | 0.9万人学习
PHP基础入门课程
共33课时 | 2万人学习
WEB前端教程【HTML5+CSS3+JS】
共101课时 | 8.4万人学习
最新文章








