zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    mysql-5.7 show engine innodb status 详解
    mysql-5.7 saving and restore buffer pool state 详解
    mysql-5.7 监控innodb buffer pool load 的进度 详解
    python3 functools partial 用于函数的包装器详解
    mysql-5.7 innodb change buffer 详解
    mysqlbackup 重建带有gtid特性的slave
    将python图片转为二进制文本的实例
    nginx: [error] invalid PID number "" in "/run/nginx.pid"
    ubuntu中执行定时任务crontab
    Matplotlib:mpl_toolkits.mplot3d工具包
  • 原文地址:https://www.cnblogs.com/freeabyss/p/3187058.html
Copyright © 2011-2022 走看看