谁能告诉我如何从以下 xml 中选择值:
我想获得如下行:
Col1:键,Col2:键,Col3:值
1 1 value
1 2 value2
1 3 value3
2 4 value4
2 5 value5
2 6 value6
这是 XML:
<root>
<item>
<key>1</key>
<value>
<params>
<item>
<key>1</key>
<value>value</value>
</item>
<item>
<key>2</key>
<value>value2</value>
</item>
<item>
<key>3</key>
<value>value3</value>
</item>
</params>
</value>
</item>
<item>
<key>2</key>
<value>
<params>
<item>
<key>4</key>
<value>value4</value>
</item>
<item>
<key>5</key>
<value>value5</value>
</item>
<item>
<key>6</key>
<value>value6</value>
</item>
</params>
</value>
</item>
</root>
假设您在 T-SQL 变量中有此 XML - 那么您可以使用以下代码片段:
DECLARE @input XML = '...(your XML here).....'
SELECT
Key1 = Item.value('(key)[1]', 'int'),
Key2 = Item2.value('(key)[1]', 'int'),
ItemValue = Item2.value('(value)[1]', 'varchar(50)')
FROM
@input.nodes('/root/item') AS T(Item)
CROSS APPLY
item.nodes('value/params/item') AS T2(Item2)
这给了我一个输出:
Key1 Key2 ItemValue
1 1 value
1 2 value2
1 3 value3
2 4 value4
2 5 value5
2 6 value6
方法如下:
获取列表<item>
下的节点<root>
作为您的第一个“XML 节点列表”,其中第一个.nodes()
XQuery 方法,并提取值<key>
XML 片段中的 XML 元素Key1
使用以下命令获取该 XML 片段内的 XML 节点的“嵌套”列表value/params/item
XPath,获取子行 - 并从中提取值<key>
and <value>
从那些嵌套的子 XML 片段中Key2
and ItemValue
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)