<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="en">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="en">Learning XML</title> <price>39.95</price> </book> </bookstore>
一个轴代表了相对于一个特定结点的一种关系,常用来在结点树中参照某一结点来定位其它结点。
轴名称 | 结果 |
---|---|
ancestor | 选取当前结点的所有祖先结点 |
ancestor-or-self | 选取当前结点及其所有祖先结点 |
attribute | 选取当前结点的所有属性 |
child | 选取当前结点的所有孩子结点 |
descendant | 选取当前结点的所有后代结点 |
descendant-or-self | 选取当前结点及其所有后代结点 |
following | 选取当前结点包围范围之后的所有结点 |
following-sibling | 选取当前结点之后的所有兄弟结点 |
namespace | 选取当前结点的所有命名空间结点 |
parent | 选取当前结点的所有父亲结点 |
一个定位路径可以是绝对的或相对的。绝对路径用“/”开头,相对路径开头没有“/”。
An absolute location path:
/step/step/...
A relative location path:
step/step/...
每个step是相对于当前结点集来获得的。
一个step由以下组成:
具体语法如下:
axisname::nodetest[predicate]
例子 | 结果 |
---|---|
child::book | 选取当前结点的孩子结点中的book结点 |
attribute::lang | 选取当前结点所有属性中的lang属性 |
child::* | 选取当前结点的孩子结点中的所有元素结点 |
child::text() | 选取当前结点的孩子结点中的所有文本结点 |
ancestor::book | 选取当前结点的祖先结点中的book结点 |
child::*/child::price | 选取当前结点的所有price孙子结点 |
一个XPath表达式返回的值可能是:结点集、字符串、布尔值、数值。
操作符 | 描述 |
---|---|
| | 计算两个独立的表达式 |
+ | 加法 |
- | 减法 |
* | 乘法 |
div | 除法 |
= | 等于 |
!= | 不等于 |
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
or | 或运算 |
and | 与运算 |
mod | 取模运算 |
原文:https://www.cnblogs.com/hilovexy-blog/p/11264430.html