XPath
在选取XML
文档中有着非常方便的功能,下面介绍一些常用的表达式语法。
假设如下XML
<?xml version="1.0" encoding="ISO-8859-1"?> |
基础表达式
选取节点基础表达式 摘自w3c
属性 | 含义 | example |
---|---|---|
nodename | 选取此节点的所有子节点 | bookstore |
* | 任何元素 | |
@* | 任何属性的节点 | |
任何属性的节点 | ||
/ | 从根节点选取。 | /bookstore |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 | //title |
. | 选取当前节点。 | ./title 选取当前节点下的title |
.. | 选取当前节点的父节点。 | |
@ | 选取属性 | //title[@lang=’en’] |
一些定位的示例
获取所有的author节点 |
轴
稍微麻烦强大一点的定位XPath Axes
获取文本包含2018的所有父Book节点
//*[contains(text(),'2018')]/ancestor::book |
还有一个ancestor-or-self
选取的父节点包含自身
选取bookstore所有的子book节点
//bookstore/child::book |
选取当前节点的所有 book 后代。
descendant::book |
获取当前节点的父节点div
./parent::div |
获取当前节点之后兄弟节点div
./following-sibling::div |
获取当前节点之前兄弟节点div
./preceding-sibling::div |
运算符
在前面其实已经使用到运算符 例如age=18
参考自 http://www.w3school.com.cn/xpath/xpath_operators.asp 不在此说明
函数
函数的使用方法在前面也使用到过 例如 contains(text(),'2018')
参考自 http://www.w3school.com.cn/xpath/xpath_functions.asp 不在此说明