0

假设我有以下 XML:

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

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

DECLARE @Stuff nvarchar(50)

如果 XML 被传递到存储过程中

@MyXml

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

我正在使用 SQL Server 2008

4

1 回答 1

2

您必须使用xml 类型而不是 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

有关详细信息,请参阅有关 xml 数据类型方法的 MSDN 页面

于 2012-06-13T15:02:28.197 回答