Za předpokladu, že máte tento XML v proměnné T-SQL - pak byste mohli použít tento fragment kódu:
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)
To mi dává výstup:
Key1 Key2 ItemValue
1 1 value
1 2 value2
1 3 value3
2 4 value4
2 5 value5
2 6 value6
Přístup je následující:
-
stáhněte si seznam
<item>
uzly pod<root>
jako váš první „seznam uzlů XML“ s prvním.nodes()
Metoda XQuery a extrahujte hodnotu<key>
Prvek XML v tomto fragmentu XML doKey1
-
uchopte „vnořený“ seznam uzlů XML uvnitř tohoto fragmentu XML pomocí
value/params/item
XPath, abyste získali podřízené řádky - a extrahovali hodnoty z<key>
a<value>
z těchto vnořených podřízených fragmentů XML doKey2
aItemValue