【dom4j之XML解析】

dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。

dom4j provides a Java library for working with XML, XPath, and XSLT.

dom4j is an easy to use, open source library for working with XML, XPath, and XSLT on the Java platform, using the Java Collections Framework, and with full support for DOM, SAX, and JAXP.



 

Main features:

designed for the Java platform with full support for the Java Collections Framework (Java 2 Collections)

full support for JAXP, TrAX, SAX, DOM, and XSLT

fully integrated XPath support for easy navigation of XML documents

event based proccessing mode to support for massive documents or XML streams

based on Java interfaces for flexible plug and play implementations.

support for XML Schema Data Type support using Kohsuke Kawaguchis excellent Multi Schema Validator library

1、读取并解析XML文档: 

代码如下:

SAXReader reader = new SAXReader(); 

Document document = reader.read(new File(fileName)); 

reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源来读取。得到的Document对象就带表了整个XML。 

读取的字符编码是按照XML文件头定义的编码来转换。如果遇到乱码问题,注意要把各处的编码名称保持一致即可。

2、取得Root节点

Element root=document.getRootElement(); 

root元素是xml文档的根节点。一切XML分析都是从Root元素开始的。

3、遍历XML树 

DOM4J提供至少3种遍历节点的方法: 

   // 枚举所有子节点 

  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 

  } 

猜你喜欢

转载自gaojingsong.iteye.com/blog/2397246