DOM4J结合XPATH简单解析xml

简单运用DOM4J和XPATH去解析xml非常方便和简洁。
首先先导入jaxen包这里写图片描述
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']");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值