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轴
的轴定义节点集合相对于当前节点的。
AXISNAME | 结果 |
---|---|
祖先 | 选择所有祖先(parent, grandparent, etc.)当前节点的 |
祖先或自身 | 选择所有祖先(parent, grandparent, etc.)当前节点的与当前节点本身 |
属性 | 选择当前节点的所有属性 |
儿童 | 选择当前节点的所有子 |
后裔 | 选择所有后代(children, grandchildren, etc.)当前节点的 |
后代或自身 | 选择所有后代(children, grandchildren, etc.)当前节点和当前节点本身 |
以下 | 当前节点的结束标记之后选择文档中的一切 |
以下同胞 | 选择所有的兄弟姐妹当前节点之后 |
命名空间 | 选择当前节点的所有命名空间节点 |
亲 | 选择当前节点的父节点 |
前 | 选择该文件在当前节点之前,除非出现祖先的所有节点,属性节点和命名空间节点 |
前同辈 | 在当前节点之前选择所有的兄弟姐妹 |
自 | 选择当前节点 |
位置路径表达式
位置路径可以是绝对或相对的。
绝对位置路径以斜线开始( / )和相对定位路径没有。 在这两种情况下的位置路径由一个或多个步骤,每个步骤由一斜线分开:
An absolute location path:
/step/step/...
A relative location path:
step/step/...
每个步骤对在当前的节点集合中的节点进行评价。
甲步骤组成:
- 一个轴(defines the tree-relationship between the selected nodes and the current node)
- 一个节点测试(identifies a node within an axis)
- 零个或多个谓词(to further refine the selected node-set)
用于位置步骤的语法是:
axisname::nodetest[predicate]
例子
例 | 结果 |
---|---|
孩子::书 | 选择是当前节点的所有子节点的书 |
属性::郎 | 选择lang当前节点的属性 |
儿童::* | 选择当前节点的所有元素孩子 |
属性::* | 选择当前节点的所有属性 |
孩子:: text() | 选择当前节点的所有文本子节点 |
子:: node() | 选择当前节点的所有子 |
后代::书 | 选择当前节点的所有后代书 |
祖先::书 | 选择当前节点的所有祖先书 |
祖先或自身::书 | 选择当前节点的所有祖先的书 - 和当前以及如果它是一本书节点 |
孩子:: * /子::价格 | 选择当前节点的所有价格孙子 |