当前位置: 首页 > 图文教程 > XML家族 > XML > 在XPath查询中指定轴(转自MSSQL手册)

XML
XML 中的常见问题(二)
XML轻松学习手册(1)XML快速入门
XML入门的常见问题(三)
XML入门的常见问题(四)
XML轻松学习手册(2)XML概念
轻松学习手册(3)XML的术语
XML轻松学习手册(4)XML语法
XML轻松学习手册(5)XML实例解析
XML卷之实战锦囊(1):动态排序
XML卷之实战锦囊(2):动态查询
XML卷之实战锦囊(3):动态分页
XML卷之实战锦囊(4):选单连动
XML卷之实战锦囊(5):结构树图
对XML数据使用XMLConvert
XSL基础教程第一章
XSL基础教程第二章
XSL基础教程第三章
XSL基础教程第四章
XSL基础教程第五章
具体实现 XML 的三种方式

XML 中的 在XPath查询中指定轴(转自MSSQL手册)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 98 ::
收藏到网摘: n/a

以下示例显示如何在 XPath 查询中指定轴。这些示例中的 XPath 查询都在 SampleSchema1.xml 中所包含的映射架构上指定。有关此示例架构的信息,请参见示例 XPath 查询。

示例

A. 检索上下文节点的子元素

此 XPath 查询选定上下文节点的所有 <Customer> 子元素:

在此查询中,child 是轴,Customer 是节点测试(如果 Customer 是 <element> 节点,则该测试为 TRUE,因为 <element> 是与 child 轴相关联的主要节点类型)。 

child 是默认轴。因此,可将该查询编写为:


/Employee

在映射架构上测试 XPath 查询

创建下面的模板 (MyTemplate.xml) 并将其保存在与 template 虚拟名称相关联的目录中。 


<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <sql:xpath-query mapping-schema="SampleSchema2.xml">
    /Employee
  </sql:xpath-query>
</ROOT>

下面的 URL 执行模板: 
http://IISServer/VirtualRoot/template/MyTemplate.xml

可直接在 URL 中指定 XPath 查询:
http://IISServer/nwind/schema/SampleSchema1.xml/child::Customer?root=root

虚拟名称 schema 是 schema 类型。架构文件存储在与 schema 类型虚拟名称相关联的目录下。root 参数用于为所得到的 XML 文档指定顶层元素(root 可为任意值)。

下面是模板执行的部分结果集:


<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
  <Employee EmployeeID="1" LastName="Davolio" 
            FirstName="Nancy" Title="Sales Representative" /> 
  <Employee EmployeeID="2" LastName="Fuller" 
            FirstName="Andrew" Title="Vice President, Sales" /> 
   ...
</ROOT>

B. 检索上下文节点的孙节点

此 XPath 查询选定上下文节点的 <Customer> 子元素的所有 <Order> 子元素:


/child::Customer/child::Order

在此查询中,child 是轴,Customer 和 Order 是节点测试(如果 Customer 和 Order 是 <element> 节点,则这些节点测试为 TRUE,因为 <element> 节点是 child 轴的主要节点)。对于每个匹配 <Customer> 的节点,将匹配 <Orders> 的节点添加到结果中。结果集中只返回 <Order>。

child 是默认轴。因此,可将此查询指定为:


/Customer/Order

在映射架构上测试 XPath 查询

创建下面的模板 (MyTemplate.xml) 并将其保存在与 template 虚拟名称相关联的目录中。 


<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <sql:xpath-query mapping-schema="SampleSchema1.xml">
    /Customer/Order
  </sql:xpath-query>
</ROOT>