XPath 基本语法
参考资料
XPath 基本语法
简介
XPath (XML Path Language) 是一种用于在XML文档中查找信息的语言,可用于遍历XML文档中的元素和属性。
基本语法
节点选择
/
从根节点选取//
从匹配选择的当前节点选择文档中的节点,不考虑位置.
选取当前节点..
选取当前节点的父节点@
选取属性
谓语(Predicates)
用于查找特定节点或包含特定值的节点,写在方括号中
[1]
第一个元素[last()]
最后一个元素[position()<3]
前两个元素[@lang]
拥有lang属性的元素[@lang='en']
lang属性值为'en'的元素
通配符
*
匹配任何元素节点@*
匹配任何属性节点node()
匹配任何类型的节点
运算符
|
计算两个节点集+
-
*
div
算术运算=
!=
<
>
<=
>=
比较运算or
and
逻辑运算
常用表达式示例
选择所有节点:
//*
选择所有book节点:
//book
选择根元素bookstore:
/bookstore
选择所有title属性为"XML"的book元素:
//book[@title='XML']
选择bookstore的所有book子元素:
/bookstore/book
选择所有price元素,且price值大于35:
//price[.>35]
选择book元素的title和author子元素:
//book/title | //book/author
选择具有lang属性的title元素:
//title[@lang]
选择第二个book元素:
//book[2]
选择最后一个book元素:
//book[last()]
轴(Axes)
定义相对于当前节点的节点集:
ancestor
所有祖先节点ancestor-or-self
所有祖先节点及当前节点attribute
当前节点的所有属性child
当前节点的所有子节点descendant
当前节点的所有后代节点following
文档中当前节点之后的所有节点parent
当前节点的父节点preceding
文档中当前节点之前的所有节点
示例:
//book/child::*
选择book的所有子节点//title[@lang='en']/ancestor::book
选择lang属性为en的title元素的所有book祖先
函数
XPath包含许多内置函数:
text()
获取节点文本内容contains(string1, string2)
判断string1是否包含string2starts-with(string1, string2)
判断string1是否以string2开头count(node-set)
返回节点集数量sum(node-set)
返回节点集数值总和concat(string1, string2, ...)
连接字符串
示例:
//title[contains(text(),'XML')]
选择文本包含"XML"的title元素count(//book)
统计book元素数量
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。