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