Bonjour à tous,

Je travaille actuellement à produire une édition HTML d'un court texte pour lequel j'ai la volonté de faire quelques notes de renvois en bas de page.

Voici mon XML source :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<text>
           <p ana="description">Voici le texte d'un paragraphe<note>Ceci est une note.</note> descriptif.</p>
         <said ana="replique" who="JM">- Bonjour, ceci est ma première réplique</said>     
         <p>Ceci est un paragraphe comprenant un autre mot<note>Définition de "mot".</note> à définir.</p></text>
Voici ma tentative de transformation XSLT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<xsl:template match="note">
        <xsl:variable name="Notetraitée"><xsl:value-of select="."/></xsl:variable>
        <xsl:if test="not(preceding::note[.=$Notetraitée])"> <!-- ou, ici "not(preceding::persName=$Notetraité)" = NE PAS AVOIR DE PREDECESSEUR QUI S'APPELLE NOTE ET QUI SOIT EGAL A LA VARIABLE Notetraite EN COURS DE TRAITEMENT -->
            <xsl:element name="note">
                <xsl:attribute name="n">
            <xsl:value-of select="count(/text/descendant::note[.=$Notetraitée])"/>
                </xsl:attribute>
                <xsl:attribute name="place">foot</xsl:attribute>
                <xsl:apply-templates/>
            </xsl:element> <!-- dans le cas du test, affichage de la valeur -->
 
            <!-- on compte le nombre de <note> qui ont la même valeur, dans tout le document (on va chercher tous les descendants qui ont la même valeur que l'élément en cours de traitement -->
 
            <xsl:for-each select="following::note[.=$Notetraitée]"> 
                <xsl:element name="note">
                <xsl:attribute name="n">
                    <xsl:value-of select="count(/text/descendant::note[.=$Notetraitée])+1"/>
                </xsl:attribute>
                <xsl:attribute name="place">foot</xsl:attribute>
            </xsl:element>
 
            </xsl:for-each>
        </xsl:if>
    </xsl:template>
Ma volonté est simplement de générer un fichier HTML où, pour chaque note, celles-ci porteraient un nombre qui aurait été généré automatiquement (par ma fonction for-each). Je voudrais, à terme, établir des liens (aller-retour) entre l'endroit où se trouve l'appel de note, et ladite note en bas de page.

J'ai essayé maintes transformations, mais cela ne fonctionne pas et je m'arrache les cheveux.

Je vous remercie par avance pour les éclaircissements que vous pourrez m'apporter.

Jonas