指定位置路径 (SQLXML 4.0)

XPath 查询以表达式的形式指定。 有多种表达式。 位置路径是一个表达式,它选择一组相对于上下文节点的节点。 评估位置路径的结果是节点集。

位置路径的类型

位置路径可以采用以下任一形式:

  • 绝对位置路径

    绝对位置路径从文档的根节点开始。 它由斜杠标记(/)(可选)后跟相对位置路径组成。 斜杠标记 (/) 选择文档的根节点。

  • 相对位置路径

    相对位置路径从文档中的上下文节点开始。 位置路径由一个或多个位置步骤序列组成,由斜杠标记 (/) 分隔。 每个步骤选择一组相对于上下文节点的节点。 初始步骤序列选择一组相对于上下文节点的节点。 该集中的每个节点都用作以下步骤的上下文节点。 由该步骤标识的节点集已联接。 例如,child::Order/child::OrderDetail 选择上下文节点的 Order 元素子级的 OrderDetail> 元素子<级。><

    注释

    在 XPath 的 SQLXML 4.0 实现中,每个 XPath 查询都从根上下文开始,即使 XPath 不是显式绝对的。 例如,以“Customer”开头的 XPath 查询被视为“/Customer”。 在 XPath 查询 Customer[Order]中,客户从根上下文开始,但 Order 从 Customer 上下文开始。 有关详细信息,请参阅使用 XPath 查询简介(SQLXML 4.0)。

位置步骤

位置路径(绝对或相对)由包含三个部分的位置步骤组成:

  • 轴指定位置步骤和上下文节点选择的节点之间的树关系。 支持 parentchildattributeself轴。 如果在位置路径中指定了轴 child ,则查询选择的所有节点都是上下文节点的子级。 如果指定了轴 parent ,则所选节点是上下文节点的父节点。 如果指定了轴 attribute ,则选择的节点是上下文节点的属性。

  • 节点测试

    节点测试指定位置步骤选择的节点类型。 每个轴(childparentattributeself)都有一个主体节点类型。 attribute对于轴,主体节点类型为<属性>parent对于主体child节点类型是元素,而self轴是<元素>

    例如,如果位置路径指定 child::Customer<则选择上下文节点的 Customer> 元素子级。 child由于轴具有<元素>作为其主体节点类型,因此如果 Customer 是元素>节点,则节点测试 Customer 为< TRUE。

  • 选择谓词 (零个或多个)

    谓词根据轴筛选节点集。 在 XPath 表达式中指定选择谓词类似于在 SELECT 语句中指定 WHERE 子句。 谓词在括号之间指定。 应用所选谓词中指定的测试会筛选节点测试返回的节点。 对于要筛选的节点集中的每个节点,谓词表达式的计算方式为上下文节点,节点集中的节点数为上下文大小。 如果谓词表达式的计算结果为该节点的 TRUE,则节点包含在生成的节点集中。

    位置步骤的语法是由两个冒号(::),后跟零个或多个表达式)分隔的轴名称和节点测试,每个表达式在方括号中。 例如,XPath 表达式 (location path) child::Customer[@CustomerID='ALFKI'] 选择上下文节点的所有 <Customer> 元素子项。 然后,谓词中的测试将应用于节点集,该节点仅<返回其 CustomerID 属性的属性值为“ALFKI”的 Customer> 元素节点。

本节中

指定轴 (SQLXML 4.0)
提供指定轴的示例。

在位置路径中指定节点测试 (SQLXML 4.0)
提供指定节点测试的示例。

在位置路径中指定选择谓词 (SQLXML 4.0)
提供指定选择谓词的示例。