XML与SQL SERVER2005 (二)

 

------------------------------------------------------------------------

-- 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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值