<Root>
<Envelope>
<Header>
<ineed>apple</ineed>
</Header>
<success></success>
</Envelope>
<Envelope>
<Header>
<ineed>apple</ineed>
</Header>
<success></success>
</Envelope>
<Envelope>
<Header>
<ineed>apple</ineed>
</Header>
<criticalerror></criticalerror>
</Envelope>
<Envelope>
<Header>
<ineed>apple</ineed>
</Header>
<success></success>
</Envelope>
<Envelope>
<Header>
<ineed>apple</ineed>
</Header>
<criticalerror></criticalerror>
</Envelope>
<Envelope>
<Header>
<ineed>apple</ineed>
</Header>
<criticalerror></criticalerror>
</Envelope>
<Envelope>
<Header>
<ineed>apple</ineed>
</Header>
<milderror></milderror>
</Envelope>
<Envelope>
<Header>
<ineed>apple</ineed>
</Header>
<success></success>
</Envelope>
</Root>
やあ、
これを xslt で動作させる方法がわかりません。xml ファイルには常に偶数回出現する「エンベロープ」要素があります。その理由は、xml がペア (1 番目と 2 番目、3 番目と 4 番目など) に基づいて成功、エラー、または警告を示すためです。最優先事項は「criticalerror」要素です。つまり、この要素がペアに存在する場合、ペアはエラーと見なされ、要素が 2 回発生することもあります。
次の優先順位は、警告を表す「milderror」要素です。3番目の優先順位は「成功」要素です。したがって、両方がペアで「成功」を含む場合にのみ、成功と見なされます。
上記の場合、最初のペアは成功、2 番目はエラー、3 番目はエラー、4 番目は警告です。成功と警告の 2 つのエラーがあります。これにより、以下のような xml が生成されます。繰り返しますが、エラーの優先度が高く (xml で最初に発生)、次に警告が表示されます
<Root>
<error></error>
<error></error>
<warning></warning>
<success></success>
</Root>
上記の xml を使用したアクションごとに、ペアになったシナリオ (成功、エラー、警告) ごとに、アクションごとに 3 つ (つまり、私の設計はそうです) があり、これはデータパワーのアクションです。
各アクションで成功するには、「apple」である成功ペアに対応する「ineed」要素を上位 xml から取得する必要があります。これは、上位 xml のペア内のいずれかまたは両方で発生する可能性があります。ペアでも同じですが、どちらか一方または両方で発生する可能性があります。
私が持っているのは、成功のためのコンテキスト loopcount 変数 (この場合は 1) だけです。これは、すべての成功シナリオを反復します。
同様に、エラー シナリオ (この場合は 2 回ループ) の場合、対応する "ineed" 要素を最上位の xml から取得する必要があります。ループカウント変数 1、次回ループカウント変数は 2
警告シナリオについても同じです。