我有一个包含许多节点的大型 XML 注释。
有没有一种方法可以让我从较大的 XML 中只选择一个节点及其所有内容?
我正在使用 sql 2005
我有一个包含许多节点的大型 XML 注释。
有没有一种方法可以让我从较大的 XML 中只选择一个节点及其所有内容?
我正在使用 sql 2005
如果要获取 XML 的一部分,则应使用query() 方法。
declare @XML xml
set @XML =
'
<root>
<row1>
<value>1</value>
</row1>
<row2>
<value>2</value>
</row2>
</root>
'
select @XML.query('/root/row2')
结果:
<row2>
<value>2</value>
</row2>
如果你想要来自特定节点的值,你应该使用value() 方法。
select @XML.value('(/root/row2/value)[1]', 'int')
结果:
2
更新:
如果要将 XML 分解为多行,请使用nodes() 方法。
要获取值:
declare @XML xml
set @XML =
'
<root>
<row>
<value>1</value>
</row>
<row>
<value>2</value>
</row>
</root>
'
select T.N.value('value[1]', 'int')
from @XML.nodes('/root/row') as T(N)
结果:
(No column name)
1
2
要获取整个 XML:
select T.N.query('.')
from @XML.nodes('/root/row') as T(N)
结果:
(No column name)
<row><value>1</value></row>
<row><value>2</value></row>