dom4j遍历嵌套xml


public static void main(String[] args) throws Exception {	
String retxml = ""//需要解析的xml		
Document	dom = DocumentHelper.parseText(retxml);
Element rootElement = dom.getRootElement();// 获取根节点:
				  getNodes(rootElement);// 调用遍历节点的方法,从跟节点遍历
}
 /** 
     * 从指定节点Element node开始,递归遍历其所有子节点 
	 * @throws DocumentException 
     */  
    public static void getNodes( Element node) throws DocumentException {  
        // 当前节点的名称、文本内容和属性  
        System.out.println("节点名称:" + node.getName());// 节点名称  
        System.out.println("节点的内容:" + node.getTextTrim());// 节点内容 
        final List listAttr = node.attributes();// 节点的所有属性  
//这里是xml下body节点下面还有xml,也就是嵌套xml的。可以根据第一次遍历输出的节点属性查看
        if("body".equals(node.getName())){
        	String bodyxml=node.getTextTrim();//把body的节点内容存储为一个xml
        	Document dom= DocumentHelper.parseText(bodyxml);
			  Element rootElement = dom.getRootElement();
			  getNodes(rootElement);再次开始遍历
        }
        for (final Attribute attr : listAttr) {// 遍历当前节点的所有属性  
            final String name = attr.getName();// 属性名称  
            final String value = attr.getValue();// 属性的值  
        }  
  
        // 递归遍历当前节点所有的子节点  
        final List listElement = node.elements();// 所有一级子节点的list  
        for (final Element e : listElement) {// 遍历所有一级子节点  
            getNodes(e);// 递归  
        }  
    }

你可能感兴趣的:(dom4j遍历嵌套xml)