鉴于以下内容:
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.
。
答案 0 :(得分:5)
只需使用.query()
方法代替.value()
:
SELECT @samplexml.query('/root[1]')
或
SELECT @samplexml.query('.')
返回与给定的XPath表达式匹配的元素(及其内容),并返回为XML
类型