dom4j解析XML文件

简单用DOM4J结合XPATH解析XML
由于DOM4J在解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便,结合XPATH就可以直接获取到某个元素

使用dom4j支持xpath的操作的几种主要形式

  第一种形式
    /AAA/DDD/BBB: 表示一层一层的,AAA下面 DDD下面的BBB
  第二种形式
     //BBB: 表示和这个名称相同,表示只要名称是BBB,都得到
第三种形式
    /*: 所有元素
第四种形式
    BBB[1]: 表示第一个BBB元素
    BBB[last()]:表示最后一个BBB元素
第五种形式
    //BBB[@id]: 表示只要BBB元素上面有id属性,都得到
第六种形式
    //BBB[@id='b1'] 表示元素名称是BBB,在BBB上面有id属性,并且id的属性值是b1

使用dom4j支持xpath具体操作
默认的情况下,dom4j不支持xpath,如果想要在dom4j里面是有xpath,第一步需要,引入支持xpath的jar包,如下:


在dom4j里面提供了两个方法,用来支持xpath
    

selectNodes("xpath表达式"),获取多个节点
       selectSingleNode("xpath表达式"),获取一个节点


应用简单案例:

1.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<class>
<student>
<name>张三</name>
<sid>111111</sid>
</student>
<student id="stu1">
<name>李四</name>
<sid>222222</sid>
</student>
</class>



import java.util.List;
import org.dom4j.Document;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class Dom4jXpath {

public static void main(String[] args) throws Exception {
select();//查询所有name的值
//select2();//查询id=stu1的学生的name的值
}
//查询所有name的值
private static void select() throws Exception {
SAXReader saxReader=new SAXReader();
Document document=saxReader.read("src/1.xml");
List<Node>list=document.selectNodes("//name");
for(int i=0;i<list.size();i++)
System.out.println(list.get(i).getText());
}
//查询id=stu1的学生的name的值
private static void select2() throws Exception {
SAXReader saxReader=new SAXReader();
Document document=saxReader.read("src/1.xml");
Node node=document.selectSingleNode("//student[@id='stu1']/name");
System.out.println(node.getText());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值