首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求解释xml数据类型提供的value方法!该怎么解决

2012-03-29 
求解释xml数据类型提供的value方法!!!!value方法中中的参数xquery怎么解释?比如:SQL codeDECLARE @s VARCH

求解释xml数据类型提供的value方法!!!!
value方法中中的参数xquery怎么解释?
比如:

SQL code
DECLARE @s VARCHAR(100)SET @s='a,b,c,dd,ee,f,aa,a,aa,f'SELECT b.v FROM    (SELECT CAST('<r>' + REPLACE(@s,',','</r><r>') + '</r>' AS XML) x) a CROSS APPLY    (SELECT v=t.x.value('.','VARCHAR(10)') FROM a.x.nodes('//r') AS t(x) ) b

value方法中的'.'是什么意思?
SQL code
DECLARE @myDoc xmlDECLARE @ProdID intSET @myDoc = '<Root><ProductDescription ProductID="1" ProductName="Road Bike"><Features>  <Warranty>1 year parts and labor</Warranty>  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance></Features></ProductDescription></Root>'SET @ProdID =  @myDoc.value('(/Root/ProductDescription/@ProductID)[1]', 'int' )SELECT @ProdID

value中的'[1]'是什么意思?
希望能有比较详细的解释。

[解决办法]
网上搜大把的。。。。

/ 从根节点选取。 
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 
. 选取当前节点。 
.. 选取当前节点的父节点。 
@ 选取属性。 

/bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。 
/bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。 
/bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。 
/bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 

[解决办法]
参考 http://blog.csdn.net/happyflystone/article/details/4402574
[解决办法]
先做 .nodes, 得到 //r 的所有 node, 这个 nodes 展示为表 T , 列c
然后针对表中的每个 node 取 value, 也就是 T.c.value , 取里面的 xpath 表示的值, 使用的是 ., 也就是当前 node

所以总的来说, 就是取每个 //r 的 node 的值
[解决办法]
探讨
先做 .nodes, 得到 //r 的所有 node, 这个 nodes 展示为表 T , 列c
然后针对表中的每个 node 取 value, 也就是 T.c.value , 取里面的 xpath 表示的值, 使用的是 ., 也就是当前 node

所以总的来说, 就是取每个 //r 的 node 的值

热点排行