从Nvarchar(MAX)返回XML数据

时间:2017-02-24 18:39:18

标签: sql-server xml tsql xml-parsing

我需要一些帮助从存储XML数据的nvarchar(max)列中提取数据。

以下是样本数据。

<ArrayOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
  <string>B1-10</string>
  <string>B2-20</string>
  <string>B2-20</string>
</ArrayOfstring>

我试过这个,只返回NULL然后错误输出到“XML解析:第1行,第2个字符,非法限定名字”

SELECT cast(COLUMNNAME AS xml).value('/ArrayOfString[1]/String[1]', 'VARCHAR(MAX)')
FROM dbo.TABLENAME 

我在这个很棒的网站上尝试了很多想法,但似乎都有相同的结果。我在这里错过了什么?在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

;WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft.com/2003/10/Serialization/Arrays', 
                    'http://www.w3.org/2001/XMLSchema-instance' AS i)
SELECT cast(COLUMNNAME AS xml).value('(/ArrayOfstring/string)[1]', 'VARCHAR(MAX)')
FROM dbo.TABLENAME