Xpath简介
Xpath是什么
- xpath是一门在xml文档中查找信息的语言,xpath可用来在xml文档中对元素和属性进行遍历
- xpath使用路径表达式在xml文档中进行导航
- xpath包含一个标准函数库
- xpath是xsit中的主要元素
- xpath是一个W3c标准
xpath定位
- 路径
- 属性
- 函数
- 轴
- 逻辑运算符
普通语法
- 绝对路径——表达式: /
- 相对路径——表达式: //
- 符号
- 表达式: .
- 表达式: ..
- 属性法:
- 表达式:[@属性=‘属性值’]
- 其他运算符:[@属性>属性值]
- 函数
- starts-with(@属性名,‘属性开头的值’)
- contains(@属性名,‘属性包含的值’)
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student sid="s001">
<name>小明</name>
</student>
<student sid="s002">
<name>小芳</name>
</student>
<student sid='s003'>
<name>小王</name>
</student>
</students>
函数简单运用
package com.zking.dome;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class Dome03 {
public static void main(String[] args) {
//1.获取io流
InputStream is = Dome03.class.getResourceAsStream("/students.xml");
// System.out.println(is);
//2、创建SaxReader对象 读取器对象
SAXReader sr=new SAXReader();
try {
//3、读取配置文件,获取Docement对象
Document doc = sr.read(is);
//4、使用xpath解析doceent对象
// Node node = doc.selectSingleNode("/students/student[@sid='s001']");
// System.out.println(node);
// //节点的属性值 需要将节点转换成Element 元素对象
// Element el=(Element)node;
// //根据节点属性找到属性值
// String value = el.attributeValue("sid");
// System.out.println(value);
// List nodes = doc.selectNodes("//*[contains(@sid,'s')]");//包含
// List nodes = doc.selectNodes("//*[starts-with(@sid,'1')]");//以什么开头
List nodes = doc.selectNodes("//*[ends-with(@sid,'1')]");//以什么结尾
System.out.println(nodes.size());
} catch (DocumentException e) {
throw new RuntimeException(e);
}
}
}