dom4j递归解析XML字符串所有子节点

Posted 德邦总管

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dom4j递归解析XML字符串所有子节点相关的知识,希望对你有一定的参考价值。

 1 /**
 2        * dom4j递归解析所有子节点
 3        * 
 4        * @param childElements
 5        * @param mapEle
 6        * @return
 7        */
 8       public Map<String, Object> getElementsToString(String print) {
 9         //解析返回的xml字符串,生成document对象
10             Document document = null;
11             Map<String,Object> mapEle = null;
12             try{
13                 document = DocumentHelper.parseText(print);
14                 //根节点
15                 Element root = document.getRootElement();
16                 //子节点
17                 List<Element> childElements = root.elements();
18 
19                 mapEle = new HashMap<String, Object>();
20                 //遍历子节点
21                 mapEle = getAllElements(childElements,mapEle);
22             }catch(DocumentException e){
23                 // TODO Auto-generated catch block
24                 e.printStackTrace();
25             }
26             return mapEle;
27       }
28       
29       /**
30        * dom4j递归解析所有子节点
31        * 
32        * @param childElements
33        * @param mapEle
34        * @return
35        */
36       public static Map<String, Object> getAllElements(List<Element> childElements,Map<String,Object> mapEle) {
37           for (Element ele:childElements){
38               mapEle.put(ele.getName(), ele.getText());
39               if(ele.elements().size()>0){
40                   mapEle = getAllElements(ele.elements(), mapEle);
41               }
42           }
43           return mapEle;
44       }

 

以上是关于dom4j递归解析XML字符串所有子节点的主要内容,如果未能解决你的问题,请参考以下文章

dom4j 添加节点

【求助】Dom4j 生成xml,节点增加属性时,属性值中有特殊字符,如何做到不转义

将xml字符串的所有叶标签转换成Map集合

java中dom4j解析xml文件怎么获取节点属性

JavaEE XML DOM4J解析

dom4j解析无根节点的xml