アイデンティティ列を持つ3つのテーブルtable1, table2, table3
があります。これらのテーブルの関係は、データベースで定義されています。col1, col2
ID
xml文字列入力を受け入れるストアドプロシージャを作成し、そのデータをテーブルに保存しようとしています。
これはXML入力です
<root>
<table1 col1='a' col2='b'>
<table2Array>
<table2 col1='c' col2='d'>
<table3array>
<table3 col1='g' col2='h' />
<table3 col1='i' col2='j' />
</table3array>
</table2>
<table2 col1='c' col2='d'>
<table3array>
<table3 col1='k' col2='l' />
<table3 col1='i' col2='j' />
</table3array>
</table2>
</table2Array>
</table1>
<table1 col1='a' col2='b'>
<table2Array>
<table2 col1='e' col2='f'>
<table3array>
<table3 col1='i' col2='j' />
<table3 col1='i' col2='j' />
</table3array>
</table2>
<table2 col1='e' col2='f'>
<table3array>
<table3 col1='g' col2='h' />
<table3 col1='g' col2='h' />
</table3array>
</table2>
</table2Array>
</table1>
</root>
このxmlはサードパーティのオブジェクトからのものであり、サードパーティのオブジェクトを変更して別の形式のxmlを発行するように制御することはできません。
アルゴリズム:
- 各ノードをループします
- ノード属性をテーブルに挿入します
- 最後のID値を取得する
- 最後のID値を外部キーとして子ノードを呼び出す
- 子ノードがなくなるまで実行します
これがこの状況に対処する唯一の方法ですか?もしそうなら、xmlノードを反復処理する方法は?
助けてください!!
ありがとう、
エセン