说明:部分内容来自于互联网,如果侵犯了您的权益,我感到很抱歉,请联系我我会第一时间将其删除。谢谢。
关于Xpath语法:Xpath语法是用于在Xml中查询节点的表达式类似于Select语句。语法如下:
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book>
<title lang="en">Harry Petter</title>
<price>35.98</price>
</book>
<book>
<title lang="en">Learning Xml</title>
<price>98.9</price>
</book>
</bookstore>
1、Xpath中的通配符
通配符 | 说明 |
/ | 从根节点选取用于绝对路径 |
// | 匹配任何位置的当前节点 |
. | 表示当前节点 |
@ | 表示属性 |
实例说明:
举例 | 说明 |
/bookstore/book/price | 表示根节点bookstore下的book节点下的price节点 |
//book | 表示任意位置的book节点 |
/bookstore/book//price | 表示在/bookstore/book下的任意位置的price节点 |
//@lang | 表示所有名为lang的属性 |
2、谓语
谓语是用来查找某个特定的节点或包含某个指定值的节点通常放置【】中。
实例说明:
举例 | 说明 |
/bookstore/book[1] | 表示根节点bookstore下的第一个book节点 |
/bookstore/book[last()] | 表示根节点bookstore下的最后一个book节点 |
/bookstore/book[last()-1] | 表示根节点bookstore下的倒数第二个book节点 |
/bookstore/book[positon()=2] | 表示根节点bookstore下的第二个book节点 |
/bookstore/book[positon()<3] | 表示根节点bookstore下的前两个book节点 |
//title[.=’harry petter’] | 表示获取title节点文本等于harry petter的节点 |
//title[@lang=’eng’] | 表示属性lang等于eng的title节点 |
/boostore/book[price>35.00] | 获取price值大于35.00的book节点 |
/boostore/book[price>35.00]/title | 获取price值大于35.00的book节点下的tittle节点 |
3、选取未知节点
通配符 | 说明 |
* | 任何元素节点 |
@* | 任何属性节点 |
Node() | 任何类型节点 |
举例说明:
举例 | 说明 |
/bookstore/* | 表示根节点bookstore下的所有节点 |
//title[@*] | 表示含有属性的所有title节点 |
4、选取多个路径
利用“|”实现选取多个路径
举例 | 说明 |
//book/title|//book/price | 选取所有title节点和price节点 |
/bookstore/book/title|//price | 选取bookstroe下book下的title节点和所有price节点 |
5、常用函数
Ø And和OR运算符
例://book[title=’learning xml’ and price=’39.99’]
查找满足条件的book节点
Ø Position()查找指定位置的节点
例://book[position()=2]
查找任意位置的第二个book节点
Ø Contains(code,string)获取节点包含指定字符串的节点
例://book[contains(title,’xml’)]
查找title值包含xml的book节点
Ø Starts-with(node,string) 获取节点的值以字符串开头
例://book[starts-with(title,’le’)]
查找title值以le开头的book节点
Ø Substring(string,position,length) 获取截取字符串后满足条件的节点
例://book[substring(title,1,2)=’ar’]
查找title值从1位置开始截取2位后为ar的book节点