博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java利用dom4j递归输出所有节点
阅读量:6881 次
发布时间:2019-06-27

本文共 4302 字,大约阅读时间需要 14 分钟。

hot3.png

test.xml文件

某人
10002
南昌市
10002
空ID节点啊
10002
空ID节点啊
深圳市
其它节点

 Leaf.java

package com.lushuifa.dom;public class Leaf {	private String xpath;// 	private String value;	private String domName;	public String getDomName() {		return domName;	}	public void setDomName(String domName) {		this.domName = domName;	}	public Leaf(String xpath, String value,String domName) {		this.xpath = xpath;		this.value = value;		this.domName = domName;	}	public String getXpath() {		return xpath;	}	public void setXpath(String xpath) {		this.xpath = xpath;	}	public String getValue() {		return value;	}	public void setValue(String value) {		this.value = value;	}}

 DomUtil.java文件代码

package com.lushuifa.dom;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class DomUtil {			public Document readXML() {          Document document = null;          SAXReader saxReader = new SAXReader();          try {              document = saxReader.read("F:\\testSpace\\Dom4jTest\\src\\test.xml");          } catch (DocumentException e) {              e.printStackTrace();          }          return document;      }  		 /**      * 获取根元素      *      * @return      * @throws DocumentException      */     public Element getRootElement(){         try {			Document srcdoc = this.readXML(); 			Element elem = srcdoc.getRootElement(); 			return elem;		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		return null;     }     /**      * 递归遍历方法      *      * @param element      */     public List
getElementList(Element element,ArrayList
elemList) { List elements = element.elements(); if (elements.size() == 0) { //没有子元素 String xpath = element.getPath(); String value = element.getTextTrim(); String domName = element.getName(); elemList.add(new Leaf(xpath, value,domName)); } else { //有子元素 for (Iterator it = elements.iterator(); it.hasNext();) { Element elem = (Element) it.next(); //递归遍历 getElementList(elem,elemList); } } return elemList; } public String getListString(List
elemList) { StringBuffer sb = new StringBuffer(); for (Iterator
it = elemList.iterator(); it.hasNext();) { Leaf leaf = it.next(); sb.append(leaf.getXpath()).append(" = ").append(leaf.getValue()).append("\n"); } return sb.toString(); } public static void main(String[] args) { DomUtil domUtil = new DomUtil(); System.out.println("得到document对象是:"+domUtil.readXML());; Element rootElement = domUtil.getRootElement(); List
list = domUtil.getElementList(rootElement,new ArrayList
()); System.out.println("list=="+list); for (Leaf leaf : list) { System.out.println("节点路径:"+leaf.getXpath()); System.out.println("节点名称:"+leaf.getDomName()); System.out.println("节点值:"+leaf.getValue()); } }}

 测试结果:

节点路径:/doc/person/name

节点名称:name

节点值:某人

节点路径:/doc/person/adds/add/BS

节点名称:BS

节点值:10002

节点路径:/doc/person/adds/add/note

节点名称:note

节点值:南昌市

节点路径:/doc/person/adds/add/BS

节点名称:BS

节点值:10002

节点路径:/doc/person/adds/add/note

节点名称:note

节点值:空ID节点啊

节点路径:/doc/person/adds/add/BS

节点名称:BS

节点值:10002

节点路径:/doc/person/adds/add/note

节点名称:note

节点值:空ID节点啊

节点路径:/doc/person/adds/add/note

节点名称:note

节点值:深圳市

节点路径:/doc/other/name

节点名称:name

节点值:其它节点

转载于:https://my.oschina.net/lushuifa/blog/1545967

你可能感兴趣的文章
OSChina 周五乱弹 —— 如果有一天不让我写代码了
查看>>
MySpinner
查看>>
原子变量与非阻塞同步
查看>>
基础总结篇之一:Activity生命周期
查看>>
iOS开发之UITextField
查看>>
关于instanceof关键字
查看>>
8.Utm示例-Netty集成
查看>>
在libvirt中使用QCOW2多级快照导致虚拟机无法启动的原因分析及解决
查看>>
浅析继承方式
查看>>
synchronized和volatile解决线程可见性
查看>>
hibernate生成数据库表
查看>>
Android-ABIFilter
查看>>
php中str_replace函数的多种用法总结
查看>>
vsftp-2.2.2.24搭建,工作在虚拟用户模式
查看>>
如何在运行 SQL Server 的计算机之间移动数据库
查看>>
Linux程序包管理(CentOS)
查看>>
文件服务器的详细配置之共享权限与NTFS权限的设置
查看>>
我的友情链接
查看>>
创建javascript的 StringBuilder类
查看>>
MDOP 2011 R2 简体中文版 MSDN原版
查看>>