0

次の XML があります。

<?xml version="1.0" encoding="UTF-16"?>
<APIDATA xmlns="api-com">
<ORDER EngineID="1" OrderID="66" OtherInfo="yes"><INSTSPECIFIER InstID="27" SeqID="17"/></ORDER>
<ORDER EngineID="2" OrderID="67" OtherInfo="yes"><INSTSPECIFIER InstID="28" SeqID="18"/></ORDER>
<ORDER EngineID="3" OrderID="68"><INSTSPECIFIER InstID="29" SeqID="19"/></ORDER>
</APIDATA>

すべての Order エントリの for each ループで、すべての ID を SSIS 変数に取得したいと考えています。これまでのところ、次のようにして、SSIS の制御フローで ForeachLoop を使用してデータを取得できます。

EnumerationType:  ElementCollection
OuterXPathString: //*[name() = 'ORDER']
InnerElementType: NodeText
InnerXPathString: @* | child::node()/@*

次に、変数マッピングで、XML の行が同じ長さではないという問題に遭遇します。例: 3 行目には OtherInfo エントリがありません。これにより、変数をインデックス 4 にマップすると、ループがエラーで終了します。

この問題の解決策は何ですか?

助けてくれてありがとう。

4

1 に答える 1

1

今回@*[name() = 'EngineID'] | @*[name() = 'OrderID'] | child::node()/@*[name() = 'InstID'] | child::node()/@*[name() = 'SeqID']は InnerXPathString として使用します。

于 2012-08-29T22:16:21.413 に答える