本質上,我試圖將使用SQL的XML轉換爲平面數據結構。XML到SQL結果集。多個嵌套層次
我的XML是按以下格式(我已經改變了XML轉換的一個子集,使其更簡單了我的例子):
<Actions>
<AddComponent>
<Action>
<DataItem>
<GroupId>1</GroupId>
<Data>
<Id>100</Id>
<Value>Value A</Value>
<Children>
<Data>
<Id>200</Id>
<Value>Value B</Value>
<Children>
<Data>
<Id>300</Id>
<Value>Value C1</Value>
</Data>
<Data>
<Id>301</Id>
<Value>Value C2</Value>
<Children />
</Data>
</Children>
</Data>
</Children>
</Data>
</DataItem>
<DataItem>
<GroupId>2</GroupId>
<Data>
<Id>101</Id>
<Value>Value A</Value>
<Children>
<Data>
<Id>200</Id>
<Value>Value B</Value>
<Children>
<Data>
<Id>302</Id>
<Value>Value C3</Value>
</Data>
</Children>
</Data>
</Children>
</Data>
</DataItem>
</Action>
</AddComponent>
</Actions>
我找的輸出如下:
+---------+-----+----------+----------+
| GroupId | Id | Value | ParentId |
+---------+-----+----------+----------+
| 1 | 100 | Value A | NULL |
| 1 | 200 | Value B | 100 |
| 1 | 300 | Value C1 | 200 |
| 1 | 301 | Value C2 | 200 |
| 2 | 101 | Value A | NULL |
| 2 | 200 | Value B | 101 |
| 2 | 302 | Value C3 | 200 |
+---------+-----+----------+----------+
我不確定遞歸通過'Children'元素的最佳方法。由於兒童人數可能無限。
檢查此:http://stackoverflow.com/questions/14712864/how-to-query-values-from-xml-nodes –