转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
SQL Server 2000 XML之七种兵器         

SQL Server 2000 XML之七种兵器

作者:闵涛 文章来源:闵涛的学习笔记 点击数:5375 更新时间:2007/11/14 12:58:38
在内的布尔值谓词   所有关系运算符 =, !=, <, <=, >, >= 算术运算符 +, -, *, div 显式转换函数 number()string()Boolean() 布尔运算符 AND, OR 布尔函数 true()false()not() XPath 变量  
  不支持的功能

  下表显示 SQL Server 2000 中没有实现的 XPath 语言的功能。

功能 项目 轴 ancestor、ancestor-or-self、descendant、descendant-or-self (//)、following、following-sibling、namespace、preceding、preceding-sibling 数值谓词   算术运算符 mod 节点函数 ancestor、ancestor-or-self、descendant、descendant-or-self (//)、following、following-sibling、namespace、preceding、preceding-sibling 字符串函数 string()、concat()、starts-with()、contains()、substring-before()、substring-after()、substring()、string-length()、normalize()、translate() 布尔函数 lang() 数字函数 sum()、floor()、ceiling()、round() Union 运算符 |

  XPath 查询是以表达式的形式指定的。位置路径是一种比较常用表达式,用以选择相对于上下文节点的节点集。位置路径表达式的求值结果是节点集。

XML 文档
<root>
  <order productid="Prod-28" unitprice="45.6" quantity="15">
  <discount>0.25</discount>
  </order>
  <order productid="Prod-39" unitprice="18" quantity="21">
  <discount>0.25</discount>
  </order>
  <order productid="Prod-46" unitprice="12" quantity="2">
  <discount>0.25</discount>
  </order>
</root>

  下面是查询该XML 文档的XPath位置路径表达式,它的含义是返回根节点下所有<ROOT>子元素下的ProductID属性的属性值为 "prod-39"的 <order> 元素。

  位置路径的类型

  可以分为绝对位置路径和相对位置路径。

  绝对位置路径以文档的根节点开始,由斜杠 (/) 组成,后面可以是相对位置路径。斜杠 (/) 选定文档的根节点。

  相对位置路径以文档的上下文节点(Context)开始,由斜杠 (/) 所分开的一个或多个位置步骤序列组成。每个步骤都选定相对于上下文节点的节点集。初始步骤序列选定相对于上下文节点的节点集。节点集中的每个节点都用作后续步骤的上下文节点。由后续步骤标识的节点集联接在一起。例如,child::Order/child::OrderDetail 选定上下文节点的<order> 子元素的 <orderdetail> 子元素。

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

  轴

  轴指定位置步骤选定的节点与上下文节点之间的树关系。SQL Server 2000 支持 parent、child、attribute 及 self 轴。

  如果在位置路径中指定 child 轴,查询选定的所有节点都将是上下文节点的子节点。
比如说要查询从当前的上下文节点中选定所有 <Order>节点的子节点,可以使用 child:: Order

  如果指定 parent 轴,选定的节点将是上下文节点的父节点。
比如说要查询从当前的上下文节点中选定所有 <Order>节点的父节点,可以使用 parent:: Order

  如果指定 attribute 轴,选定的节点是上下文节点的属性。
比如说要查询从当前的上下文节点中选定所有 <Order>节点的属性,可以使用 attribute:: Order

  节点测试

  节点测试指定位置步骤选定的节点类型。每个轴(child、parent、attribute 和 self)都具有主要节点类型。对于 attribute 轴,主要节点类型是 <attribute>。对于 parent、child 和 self 轴,主要节点类型是 <element>。

  例如,如果位置路径指定 child::Order,则将选定上下文节点的 <Order> 子元素。因为 child 轴以 <element> 为其主要节点类型,而且如果Order是 <element> 节点,则节点测试Order为 TRUE。

  选择谓词(零个或多个)

  谓词围绕着轴筛选节点集。在 XPath 表达式中指定选择谓词与在 SELECT 语句中指定 WHERE 子句相似。谓词在括号中指定。应用在选择谓词中指定的测试将对节点测试返回的节点进行筛选。对于要筛选的节点集中的每个节点,在对谓词表达式取值时将此节点作为上下文节点,将节点集中的节点数作为上下文大小。如果谓词表达式对此节点取值为 TRUE,则此节点将包括在最后所得到的节点集中。

  例如:
  1. Child::Order [attribute::ProductID="Prod-39"] 表示从当前的上下文节点中选定ProductID属性值为Prod-39的所有 <order>子节点。

  2. Child::Order [child:: Discount] 表示从当前的上下文节点中选定包含一个或多个 <Discount> 子节点的所有 <Order> 子节点。

  3. Child::Order [not(child:: Discount)] 表示从当前的上下文节点中选定不包含 <Discount> 子节点的所有 <Order> 子节点。

  位置步骤的语法

  是用两个冒号 (::) 分开的轴名和节点测试,后面是分别放在方括号中的零个或多个表达式。

  例如,在 XPath 表达式(位置路径)child::Order[attribute::ProductID="prod-39"]中,选定上下文节点的所有 <order> 子元素。然后将谓词中的测试应用于节点集,将只返回 ProductID属性的属性值为 "prod-39"的 <order> 元素节点。

  缩略语法

  Sqlservr2000支持下面的位置路径缩略语法:
  attribute::可以缩略为 @。
  比如:[attribute::ProductID="Prod-39"] 可以缩写成 [@ProductID =" Prod-39"]

  child::可以在位置步骤中省略。
  比如:位置路径child::ROOT/child::Orde可以缩写成 ROOT /Order

  self::node() 可缩略为一个句点 (.),而 parent::node() 可缩略两个句点 (..)。

  所以 /child::ROOT/child::Order[attribute::ProductID="prod-39"]也可以缩写成 /ROOT/Order[@ProductID="prod-39"]

上一页  [1] [2] [3] [4] [5] [6] 


[Access]sql随机抽取记录  [Access]ASP&SQL让select查询结果随机排序的实现方法
[互联动态]20008年最紧缺的IT人才和最热门七大技术  [聊天工具]Office 2000 服务器扩展
[聊天工具]最cool的p2p软件——edonkey2000  [聊天工具]企业邮件系统的利器----FoxMail Server
[系统软件]八招秘籍保证Windows 2000安全  [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜
[系统软件]SQL语句性能优化--LECCO SQL Expert  [系统软件]关于Windows2000Server的灾难恢复
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台