4

鉴于以下情况:

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.

4

1 回答 1

8

只需使用该.query()方法而不是.value()

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

或者

SELECT @samplexml.query('.')

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

于 2013-02-20T14:46:49.323 回答