如何从SQL中获取这个XML的所有值

问题描述:

我试图弄清楚如何从传递给SQL查询的某些XML中获取所有字符串值,并且我无法弄清楚这一点,即使在查看一些示例之后。任何人都可以指出我出错的地方吗?由于如何从SQL中获取这个XML的所有值

我的XML是:

DECLARE @CrewXML XML = N'<?xml version="1.0" encoding="utf-16"?> 
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <string>A</string> 
    <string>E</string> 
    <string>J</string> 
</ArrayOfString>' 

而且到目前为止,我这是我的代码:

select 
    t.ArrayOfString.value('string[1]','varchar(max)') 
    from 
    @CrewXML.nodes('/ArrayOfString') as t(ArrayOfString) 

此只得到我猜XML的第一行是由于[ 1]但是我似乎找不到一种方法来获取元素中的所有值。

理想情况下,这将返回一个包含多行的列,每个条目在XML中包含一行。

string添加到节点函数并使用.从当前节点获取值。

select 
    t.ArrayOfString.value('.','varchar(max)') 
    from 
    @CrewXML.nodes('/ArrayOfString/string') as t(ArrayOfString) 
+0

非常感谢,我会尽快将您的答案标记为已接受。 – Purplegoldfish 2012-02-02 14:20:18