dom4j初识


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

 


你可能感兴趣的:(dom4j)