我正在使用 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/>
那么它应该是 4,而不是 6:
<a1/>
<a1/>
<a1/>
<a1/>
<b/>
<c/>
<d/>