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

XML
快速通过XSL转换XML文件
XML入门精解之结构与语法
利用XSL和ASP在线编辑XML文档
关于XML在语音合成中的应用
如何得到XML文档文件的大小
快速从一个XML文件中查找信息
一个在客户端生成并使用XML的例子
给XML初学者建议
XML的四种解析器原理及性能比较
改变我们生活的这些XML应用
揭穿 XQuery 的神话和误解
使用XSL将XML文档中的CDATA注释输出为HTML文本
基于XML的购物车的实现
javascript调用XML制作连动下拉框
用XML数据岛结合Dom制作通讯录
用XSL翻译Web服务应用程序
使用XSLT将XML数据转换成HTML
获取mssql的xml返回结构的方法
使用xmldom在服务器端生成静态html页面
使用纯HTML的通用数据管理和服务

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


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