浏览 5
XML实例文档
我们将在下面的实例中使用以下XML文档。
<?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>
XPath轴
轴表示与上下文(当前)节点的关系,用于在树上定位相对于该节点的节点。
| 轴名称 | 结果 |
|---|---|
| ancestor | 选择当前节点的所有祖先(父、祖父母等) |
| ancestor-or-self | 选择当前节点和当前节点本身的所有祖先(父、祖父母等) |
| attribute | 选择当前节点的所有属性 |
| child | 选择当前节点的所有子节点 |
| descendant | 选择当前节点的所有子代(子代、孙代等) |
| descendant-or-self | 选择当前节点和当前节点本身的所有子代(子代、子代等) |
| following | 选择文档中当前节点结束标记之后的所有内容 |
| following-sibling | 选择当前节点之后的所有同级节点 |
| namespace | 选择当前节点的所有命名空间节点 |
| parent | 选择当前节点的父节点 |
| preceding | 选择文档中当前节点之前出现的所有节点,但祖先、属性节点和命名空间节点除外 |
| preceding-sibling | 选择当前节点之前的所有同级节点 |
| self | 选择当前节点 |
位置路径表达式
位置路径可以是绝对路径,也可以是相对路径。
绝对位置路径以斜杠(/)开头,相对位置路径不以斜杠(/)开头。在这两种情况下,位置路径都由一个或多个步骤组成,每个步骤用斜线分隔:
An absolute location path:
/step/step/...
A relative location path:
step/step/...
将根据当前节点集中的节点对每个步骤进行求值。
步骤包括:
- 轴(定义选定节点和当前节点之间的树关系)
- 节点测试(标识轴内的节点)
- 零个或多个谓词(以进一步细化选定的节点集)
The syntax for a location step is:
axisname::nodetest[predicate]
实例
| 实例 | 结果 |
|---|---|
| child::book | 选择作为当前节点子节点的所有书本节点 |
| attribute::lang | 选择当前节点的lang属性 |
| child::* | 选择当前节点的所有元素子级 |
| attribute::* | 选择当前节点的所有属性 |
| child::text() | 选择当前节点的所有文本节点子节点 |
| child::node() | 选择当前节点的所有子节点 |
| descendant::book | 选择当前节点的所有账簿子体 |
| ancestor::book | 选择当前节点的所有图书祖先 |
| ancestor-or-self::book | 选择当前节点的所有书本祖先-如果当前节点是书本节点,则也选择它 |
| child::*/child::price | 选择当前节点的所有子节点 |