欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DOM4J结合XPATH简单解析xml

程序员文章站 2022-05-28 21:03:33
...

简单运用DOM4J和XPATH去解析xml非常方便和简洁。
首先先导入jaxen包DOM4J结合XPATH简单解析xml
jaxen的下载地址http://mvnrepository.com/artifact/jaxen/jaxen
假如不导入的话会产生   java.lang.NoClassDefFoundError
DOM4J基本xpath操作主要有以下6种操作

  1. /AAA/DDD/BBB 表示得到AAA下面DDD下面的BBB元素
  2. //BBB 表示直接得到BBB元素
  3. /* 表示的到全部元素
  4. BBB[1] 表示第一个BBB元素 BBB[last()] 表示最后一个BBB元素
  5. //BBB[@id] 表示所有id属性的BBB元素
  6. //BBB[@id=’a’] 表示所有id属性为a的BBB元素

DOM4J中对xpath操作主要有两个方法:

  1. document.selectSingleNode 表示选取一个元素
  2. document.selectNodes 表示选取多个元素

下面就对一个xml文件进行简单操作
xml文件

<?xml version="1.0" encoding="UTF-8"?>
<四大名著>
    <西游记 id="x001">
        <作者 id="1">吴承恩1</作者>
        <作者 id="2">吴承恩2</作者>
        <朝代>明朝</朝代>
    </西游记>
    <红楼梦 id="x002">
        <作者>曹雪芹</作者>
    </红楼梦>
    <三国演义 id="x003"/>
</四大名著>

java代码部分操作

    SAXReader reader=new SAXReader();
        Document document=reader.read(new File("15网工2班.xml"));
        //找到四大名著/红楼梦/作者
        Node node1=document.selectSingleNode("四大名著/红楼梦/作者");
        // 找到所有作者
        List<Node> nodes1=document.selectNodes("//作者");
        //找到西游记第一个作者注意下标从1开始
        Node  node2=document.selectSingleNode("四大名著/西游记/作者[1]");
        //找到西游记第二个作者2 也就是最后一个
        Node  node3=document.selectSingleNode("四大名著/西游记/作者[last()]");
        //找到有id属性的作者
        List<Node> nodes2=document.selectNodes("//作者[@id]");
        //找到id属性为1的作者
        Node node4=document.selectSingleNode("//作者[@id='1']");