2017-12-21 25 views
1

単一のXML入力メッセージから複数の出力を取得したいとします。単一入力メッセージから複数の出力を取得する

<List> 
<type>mailbox</type> 
<Docs> 
    <DocID>38ghjk</DocID> 
</Docs> 
<Docs> 
    <DocID>39ghjk</DocID> 
</Docs> 

これは私のXMLがDocIDをより多く含むように見える方法です。私の要件は、私は各DocIDごとに別々の出力メッセージが必要です。 whileループを試してみましたが、DocIDごとに別々のメッセージは表示されません。すべてのDocIDを取得できますが、DocIDごとに個別出力を取得することはできません。

これを実行するための方法や解決策を提案してください。質問があればコメントしてください。

+0

あなたのesqlコードを含める必要があります。その間はPROPAGATEステートメントをチェックしてください。 –

+0

whileループ内のAttila PROPAGATEステートメントは、すべてのdocIDに対して別々の出力を得るのに役立ちました。そして、あなたにとても幸せな新年を祈ってください。 – Amrit

+0

ソリューションの内容を自分の質問に回答してください。 – JoshMc

答えて

1
DECLARE I INTEGER; 
DECLARE J INTEGER; 
SET J = CARDINALITY(InputRoot.XMLNSC.List.Docs[]); 
SET I = 1; 
WHILE I < J DO 
SET OutputRoot.XMLNSC.LIST.DocId[K] = InputRoot.XMLNSC.List.Docs[I].DocId; 
PROPAGATE TO TERMINAL 'out' delete none; 
SET I = I + 1; 
END WHILE; 

以前の私は、私は単一の出力を得ていたので、文を伝播し使用していませんでしたが、今私はすべてのDOCIDに異なる出力を取得しています。

関連する問題