如何从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)
非常感谢,我会尽快将您的答案标记为已接受。 – Purplegoldfish 2012-02-02 14:20:18