从XML中选择元素

时间:2013-02-20 14:41:30

标签: sql-server xml sql-server-2008 xpath

鉴于以下内容:

declare @samplexml as xml
set @samplexml = '<root><someelement><another /><somethingElse>test</somethingElse></someelement></root>'

select
  @samplexml.value('/root[1]','nvarchar(max)')

我得到了结果:

test

但我想要结果:

<root><someelement><another /><somethingElse>test</somethingElse></someelement></root>

如何选择实际的XML元素?我也尝试过:

select
  @samplexml.value('/root[1]','XML')

但我收到错误The data type 'XML' used in the VALUE method is invalid.

1 个答案:

答案 0 :(得分:5)

只需使用.query()方法代替.value()

SELECT @samplexml.query('/root[1]')

SELECT @samplexml.query('.')

返回与给定的XPath表达式匹配的元素(及其内容),并返回为XML类型