解决方法
如果您想要获得XML的一部分,您应该使用
query() Method.
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() Method.
select @XML.value('(/root/row2/value)[1]','int')
结果:
2
更新:
如果你想将你的XML分割成多行,你可以使用nodes() Method.
得到价值观:
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>