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文件  示例

    // 从文件读取XML,输入文件名,返回XML文档
    public Document read(String fileName) throws MalformedURLException, DocumentException {
       SAXReader reader = new SAXReader();
       Document document = reader.read(new File(fileName));
       return document;
    }



    SAXReader :就像一根管道利用流的方式去文件里面将xml的内容给读出来。
    Document : 理解为整个xml文档的对象。如果xml很小会整个读取过来,如果xml文件很大则读取一部分。

2、需要先获取的root节点。就是根节点
   public Element getRootElement(Document doc){
       return doc.getRootElement();
    }


 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)递归
    
   public void treeWalk() {
               treeWalk(getRootElement());
        }
        public void treeWalk(Element element) {
               for (int i = 0, size = element.nodeCount(); i < size; i++)     {
                   Node node = element.node(i);
                   if (node instanceof Element) {
                          treeWalk((Element) node);
                   } else { // do something....
                    }
               }
          }


更多请参考以下链接

http://www.blogjava.net/i369/articles/154264.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值