节点测试指定位置步骤选择的节点类型。 每个轴(child、parent或attributeself)都有一个主体节点类型。
attribute对于轴,主体节点类型为<属性>。
parent对于主体child节点类型是元素,而self轴是<元素>。
注释
不支持通配符节点测试 * (例如, child::*)。
节点测试:示例 1
位置路径选择上下文节点的 Customer> 元素子级。<child::Customer
在此示例中, child 轴是 Customer 节点测试。 轴的 child 主体节点类型为 <元素>。 因此,如果 <Customer> 节点是元素>节点,则节点测试为< TRUE。 如果上下文节点没有 <Customer> 子级,则返回一组空的节点。
节点测试:示例 2
位置路径 attribute::CustomerID 选择上下文节点的 CustomerID 属性。
在本示例中, attribute 轴是 CustomerID 节点测试。 轴的 attribute 主体节点类型是 <属性>。 因此,如果 CustomerID 是属性>节点,则节点测试为< TRUE。 如果上下文节点没有 CustomerID,则返回一组空的节点。
注释
在此 XPath 实现中,如果位置步骤引用 <架构中未声明的元素> 或 <属性> 类型,则会生成错误。 这不同于 MSXML 中 XPath 的实现,后者返回空节点集。
轴的缩写语法
支持以下位置路径的缩写语法:
attribute::可以缩写为@.位置路径
Customer[@CustomerID="ALFKI"]与child::Customer[attribute::CustomerID="ALFKI"].child::可以从位置步骤中省略。因此,
child是默认轴。 位置路径Customer/Order与child::Customer/child::Order.self::node()可以缩写为一个句点(.),并且可以parent::node()缩写为两个句点(..)。