Wie, um die Anzahl der demselben unmittelbar vorhergehenden Geschwister in xsl

Ich bin mit der xslt-version 2, die ich versuche zu transformieren xml-Daten in eine fo-Ausgabe, und ich bin stecken, auf eine bestimmte Problematik.

Hier ist, was aussieht wie mein input:

    <a1/>
    <a1/>
    <b/>
    <c/>
    <d/>
    <a2/>
    <b/>
    <c/>
    <a1/>
    <a1/>
    <a1/>
    <a1/>
    <b/>
    <c/>
    <d/>

Diese Daten, funktional spricht, enthält eine Liste von 'sets' (definiert durch a1|a2,b?,c?,d?.

Mein problem ist, dass ich nicht sehen, wie kann ich die Anzahl der a1-tags für ein bestimmtes "set".

In der Tat, ich habe geschrieben das mein xsl und ich bekomme eine Ausgabe wie:

<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>

Habe ich getan ein apply-template auf a1+|a2-tags, und ich nichts tun, wenn a1-tag hat folgende Geschwister, die gleich a1.
Ich denke, es muss ein Weg gefunden werden, zählen die tags, die mit vorangehenden Geschwister (aber dann, wie um sich zu versichern, zählen nur die entsprechenden?)

Irgendwelche Tipps wäre dankbar!

Bearbeiten:
Auf das obige Beispiel der Eingang, die erste Zählung sollte 2:

    <a1/>
    <a1/>
    <b/>
    <c/>
    <d/>

dann sollte es 4 und nicht 6:

    <a1/>
    <a1/>
    <a1/>
    <a1/>
    <b/>
    <c/>
    <d/>

InformationsquelleAutor skoll | 2013-07-13

Schreibe einen Kommentar