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

XML
XML简易教程之四
XML与HTML的结合(上)
XML与HTML的结合(下)
XML入门的常见问题(一)
XML入门的常见问题(二)
XMLHTTP资料
什么是XML
什么是 XML Web Service
XML正在接管Web服务 成为SOA的基础
怎么样在网页上读取远程xml的数据
XML教程—编写结构完整的XML文档
读写xml文件的2个小函数
XML文档的基本操作
初学者如何开发出一个高质量的J2EE系统
优化 JavaScript 代码
自动更新程序的设计框架
使Firefox对XML的处理兼容IE的节点处理方法
WML学习之四 锚和任务
WML学习之五 显示表单
WML学习之六 事件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 97 ::
收藏到网摘: 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>