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 に答える