在sproc中提取xml值

时间:2012-06-13 14:55:57

标签: xml sql-server-2008 stored-procedures xquery

假设我有以下XML:

<root><test1>Hello</test1><test2>World</test2></root>

在我的存储过程中,我声明了一个这样的变量:

DECLARE @Stuff nvarchar(50)

如果XML以

的形式传递到存储过程中
@MyXml

解析传入的XML以获取元素test1中保存的值的语句是什么?

我正在使用SQL Server 2008

1 个答案:

答案 0 :(得分:2)

您必须使用xml type而不是nvarchar类型,但转换很容易。然后你可以像这样查询:

DECLARE @Stuff nvarchar(MAX) = '<root><test1>Hello</test1><test2>World</test2></root>'
DECLARE @Xml xml = @Stuff
SELECT @Xml.value('(/root/test1)[1]', 'nvarchar(50)') AS Test1

有关详细信息,请参阅MSDN page on xml Data Type Methods