利用Dom4j+xpath读取XML文档
来源:互联网 发布:淘宝网太极裤 编辑:程序博客网 时间:2024/05/16 05:46
使用Dom4j 首先应该在工程包添加一个Jar包文件:dom4j-1.6.1.jar
然后创建XML读取器对象加载DOM树模型,具体代码如下:
//1.创建XML读取器对象
SAXReader reader = new SAXReader();
//2.从类路径下面加载xml文件
InputStream in = XpathTest.class.getResourceAsStream("/cn/mytest/xpath/persom.xml");
// 3.读取xml文档,构建成Dom模型
Document document = reader.read(in);
二.使用Xpath读取Dom树中的元素,这时需要在Java工程包中添加应外一个Jar包文件:jaxen-1.1-beta-6.jar ,这个文件在dom4j的lib目录下.
否则会出现NoClassDefFoundError. 具体代码如下:
//4.用xpath的方式去查找节点,返回节点列表,selectNodes()方法中的参数为
List <Node> nodeslist = document.selectNodes("//person[@id='003']"); for (Node n : nodeslist)
{ System.out.println(n); }
//5.如果确定XML文档中只有一个节点的时候,就用selectSingleNode();
Node node= document.selectSingleNode("//person[@id='003']"); System.out.println(node);
三.具体案例
<?xmlversion="1.0"encoding="utf-8"?>
<学生列表>
<学生学号="001">
<姓名>郭靖</姓名>
<密码>123</密码>
<性别>男</性别>
<年龄>30</年龄>
<师傅>江南七怪</师傅>
</学生>
<学生学号="002">
<姓名帮派="丐帮">黄蓉</姓名>
<密码>456</密码>
<性别>女</性别>
<年龄>20</年龄>
</学生>
</学生列表>
1)查找所有学生的姓名
@Test
publicvoid test1()throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read("src/student.xml");
List<Element> eList = doc.selectNodes("/学生列表/学生/姓名");
for(Element e:eList){
System.out.println(e.getText());
}
}
2)查找姓名为“郭靖”、密码为“123”的学生
@Test
publicvoid test2()throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read("src/student.xml");
Element student = (Element)doc.selectSingleNode("/学生列表/学生[姓名='郭靖' and 密码='123']");
if(student!=null){
System.out.println("登陆成功");
}else{
System.out.println("姓名或密码错误");
}
}
- 利用Dom4j+xpath读取XML文档
- 利用dom4j读取完整的xml文档
- xpath读取xml文档
- 利用xpath读取xml
- 利用XPATH读取xml
- dom4j读取xml文档
- dom4j读取xml文档
- dom4j读取xml文档
- Dom4j读取xml文档
- Dom4j读取xml文档
- java---dom4j+xpath演示解析XML文档
- Dom4j使用Xpath语法读取xml节点
- Dom4j使用Xpath语法读取xml节点
- Dom4j使用Xpath语法读取xml节点 .
- 使用dom4j的xpath读取XML文件
- Dom4j使用Xpath语法读取xml节点 .
- Dom4j使用Xpath语法读取xml节点
- Dom4j使用Xpath语法读取xml节点
- 绝对路径与相对路径
- win7最小化最大化关闭按钮样式设置
- 构造函数+原型模式构造js自定义对象
- 泛型定容栈
- ExtJS4学习笔记六--一些小知识点
- 利用Dom4j+xpath读取XML文档
- ZOJ-1522
- Javascript中对象继承的实现
- iOS:关于获取网络类型和运营商信息
- poj2141Message Decowding
- 大家好。我是小小二二。
- RSA、DSA和ECDSA三者的签名
- C++基础:缺省构造函数
- Winform 窗体间传值的10种方法