別の標準タイプに変換する必要のあるXMLファイルを取得しています。XSLT2をすぐに使用できますが、どちらのファイルの形式も制御できません。最初のシーケンスには、数値を使用してそれらを一致させる2つのシーケンスがあります。最初のシーケンスは、2番目の0..nを持つことができます。
例は次のとおりです。
入力:
<foo>
<structure name="items">
<item>
<itemCode>1</itemCode>
<itemValue>1111</itemValue>
</item>
<item>
<itemCode>2</itemCode>
<itemValue>2222</itemValue>
</item>
</structure>
<structure name="subItems">
<subItem>
<itemCode>1</itemCode>
<subValue>12</subValue>
<subType>MISC</subType>
</subItem>
<subItem>
<itemCode>1</itemCode>
<subValue>15</subValue>
<subType>MISC2</subType>
</subItem>
<subItem>
<itemCode>2</itemCode>
<subValue>40</subValue>
<subType>MISC</subType>
</subItem>
</structure>
</foo>
そして私が欲しい出力は
<bar>
<items>
<item>
<code>1</code>
<value>1111</value>
<subItems>
<subItem>
<subValue>12</subValue>
<subType>MISC</subType>
</subItem>
<subItem>
<subValue>15</subValue>
<subType>MISC2</subType>
</subItem>
</subItems>
</item>
<item>
<code>2</code>
<value>2222</value>
<subItems>
<subItem>
<subValue>40</subValue>
<subType>MISC</subType>
</subItem>
</subItems>
</item>
</items>
</bar>
XSLTプロセッサが次のシーケンスを表示する前に最初のシーケンスを終了したように見えるという理由だけで、item.itemCodeをsubItem.itemCodeにマッピングできませんでした。どちらのシーケンスでいくつ取得するかを知る方法がないため、静的マップを作成できません。
何か案は?
前もって感謝します