私は xslt バージョン 2 を使用しています。xml を fo 出力に変換しようとしていますが、特定の問題で立ち往生しています。
これが私の入力のように見えるものです:
<a1/>
<a1/>
<b/>
<c/>
<d/>
<a2/>
<b/>
<c/>
<a1/>
<a1/>
<a1/>
<a1/>
<b/>
<c/>
<d/>
このデータは、機能的に言えば、a1|a2,b?,c?,d? によって定義された「セット」のリストを含みます。
私の問題は、特定の「セット」の a1 タグの数をカウントする方法がわからないことです。
実際、私は自分の xsl を書き、次のような出力を得ました。
<fo:table>
<fo:row>
<fo:cell>b: </fo:cell>
<fo:cell>b value</fo:cell>
</fo:row>
<fo:row>
<fo:cell>a1: </fo:cell>
<fo:cell>number of a1 ???</fo:cell> <-- what I am trying to retrieve
</fo:row>
<fo:row>
...
</fo:row>
...
</fo:table>
a1+|a2 タグでテンプレートの適用を実行しましたが、a1 タグに a1 と等しい次の兄弟がある場合は何もしません。前の兄弟でタグを数える方法があるに違いないと思います(しかし、対応するものだけを確実に数えるにはどうすればよいですか?)
ヒントをいただければ幸いです。
編集: 上記の入力例では、最初のカウントは 2 である必要があります。
<a1/>
<a1/>
<b/>
<c/>
<d/>
次に、6 ではなく 4 にする必要があります。
<a1/>
<a1/>
<a1/>
<a1/>
<b/>
<c/>
<d/>