求解释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) ) bvalue方法中的'.'是什么意思?
- 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 @ProdIDvalue中的'[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 的值
[解决办法]