dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包, Hibernate用它来读写配置文件。
1、读取xml文件 示例
1 // 从文件读取XML,输入文件名,返回XML文档 2 public Document read(String fileName) 3 throws MalformedURLException, DocumentException { 4 SAXReader reader = new SAXReader(); 5 Document document = reader.read(new File(fileName)); 6 return document; 7 }
SAXReader :就像一根管道利用流的方式去文件里面将xml的内容给读出来。
Document : 理解为整个xml文档的对象。如果xml很小会整个读取过来,如果xml文件很大则读取一部分。
2、需要先获取的root节点。就是根节点
1 public Element getRootElement(Document doc){ 2 return doc.getRootElement(); 3 }
3、遍历所有子节点
1)枚举
// 枚举所有子节点 for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); // do something } // 枚举名称为foo的节点 for ( Iterator i = root.elementIterator(foo); i.hasNext();) { Element foo = (Element) i.next(); // do something } // 枚举属性 for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); // do something }
2)递归
1 public void treeWalk() { 2 treeWalk(getRootElement()); 3 } 4 public void treeWalk(Element element) { 5 for (int i = 0, size = element.nodeCount(); 6 i < size; i++) { 7 Node node = element.node(i); 8 if (node instanceof Element) { 9 treeWalk((Element) node); 10 } else { // do something.... 11 } 12 } 13 }
更多请参考以下链接
http://www.blogjava.net/i369/articles/154264.html