设为首页 收藏本站
查看: 802|回复: 0

[经验分享] XML与SQL SERVER2005 (二)

[复制链接]

尚未签到

发表于 2016-11-10 10:46:48 | 显示全部楼层 |阅读模式


------------------------------------------------------------------------
-- Author : HappyFlyStone
-- Date : 2009-07-30
-- Version: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
--
-- 本文探讨 SQL Server 2005 中内置的 XML 支持.
-- 第二篇旨在对路径表达式作简要说明。
-- 本文来自happyflystone -CSDN博客,
-- 转载请标明出处:http://blog.csdn.net/happyflystone
------------------------------------------------------------------------



XPath

仅对针对以后在写SQL server 2005有用的部分。
什么是 XPath?



  • XPath 使用路径表达式在 XML 文档中进行导航

  • XPath 包含一个标准函数库

  • XPath XSLT 中的主要元素

XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言。



  • XPath 是一个 W3C 标准





XPath 术语

节点(Node

XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。

基本值(或称原子值,Atomic value

基本值是无父或无子的节点。

项目(Item

项目是基本值或者节点。

节点关系


父(Parent


每个元素以及属性都有一个父。


子(Children


元素节点可有零个、一个或多个子。


同胞(Sibling


拥有相同的父的节点


先辈(Ancestor


某节点的父、父的父,等等。


后代(Descendant


某个节点的子,子的子,等等


选取节点

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。这路径表达式才是关键。

下面列出了最有用的路径表达式







表达式


描述


nodename


选取此节点的所有子节点


/


从根节点选取


//


从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置


.


选取当前节点


..


选取当前节点的父节点


@


选取属性



举个例子说明一下:

<address>


<exam>
<name> flystone1 </name>
<street> 1401 Main Street </street>
<city state="NC">Anytown</city>
<postal-code> 210000 </postal-code>
</exam>
<exam>
<name> flystone2 </name>
<street> 1402 Main Street </street>
<city state="NC">Anytown</city>
<postal-code> 210000 </postal-code>
</exam>
</address>
对上这个XML大体上可以得出如下的路径表达式:
address 选择此节点下的所有子节点
adderss/exam 所有address子元素exam的所有子节点
/address address元素的绝对路径下的所有子节点
/@state 选取所有名为 state 的属性



谓语(Predicates

谓语用来查找某个特定的节点或者包含某个指定的值的节点(一般就是节点名后的[]部分)。节点下是一个子节点集,谓语完成对子集中的某个节点的选择。
比如以上例写一个路么表达式: //city[@state=”NC”]
@ 显然是为了取属性了
// 表示选取当前文档节点下所有节点
//city 当前文档下所有city节点
[@state] 表示所有包含state属性的节点
整个意思就是当前XML下所有有state属性,并属性值为NC的所有city节点


选取未知节点

XPath 通配符可用来选取未知的 XML 元素。







通配符


描述


*


匹配任何元素节点


@*


匹配任何属性节点


node()


匹配任何类型的节点


/address/* == address


多个路径并存

  通过在路径表达式中使用“|”运算符,您可以选取若干个路径。






下一篇会提到Xquery , XQuery 相对于 XML,等同于 SQL 相对于数据库。下回再详细写。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-298378-1-1.html 上篇帖子: 经典SQL语句大全 下篇帖子: XML与SQL SERVER2005 (六)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表