いくつかの要素を組み合わせてXMLからテキストに変換したいのですが、出力の重複は避けたいです。XMLは次のようになります。
<A>
<B>
<param1>value0</param1>
<param2>value1</param2>
</B>
<B>
<param1>value2</param1>
<param2>value3</param2>
</B>
<C>
<param3>valueC1</param3>
<D>
<param4>value0</param4>
<param5>value4</param5>
</D>
<D>
<param4>value0</param4>
<param5>value5</param5>
</D>
<D>
<param4>value2</param4>
<param5>value6</param5>
</D>
</C>
<C>
<param3>valueC2</param3>
<D>
<param4>value0</param4>
<param5>value5</param5>
</D>
</C>
</A>
そして出力:
OBJECT: param1=value0, param2=value1, param3=valueC1, param4=value0;
OBJECT: param1=value2, param2=value3, param3=valueC1, param4=value2;
OBJECT: param1=value0, param2=value1, param3=valueC2, param4=value0;
ノート:
- すべてのDオブジェクトについて、D.param4=B.param1を使用してBオブジェクトとの一致を探します。
- 同じCに2つ以上のDオブジェクトがあり、同じBと一致する場合は、そのうちの1つだけを印刷します(この例では、最初のオブジェクトと同じ行が生成されるため、2番目のDオブジェクトでは何も行われません)。
- 同じBと一致するが異なるCに一致する2つのDオブジェクトがある場合は、両方を印刷します(出力例の3行目)
似たような質問を探しましたが、同じ場合は見つかりませんでした。
キーを使ってできると思いますが、複雑すぎます。
ありがとう!
よろしく、エール。
PS:私の英語でごめんなさい。