Salut,
J'ai mis le sommaire du manuel d'utilisation de ma calculatrice dans un fichier à part :
Ce qui me permet de générer le sommaire automatiquement, plutôt pratique !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="iso-8859-1" ?> <sommaire> <page>presentation</page> <page>premier_calcul</page> <page>liste_type</page> <page>syntaxe</page> <page>operateur</page> <page>fonction</page> <page>commande</page> <page>fonction_util</page> <page>programmation</page> </sommaire>
Le titre des pages est situé dans le document XML associé (balise <h1>).
Maintenant, j'aimerai bien calculer la position d'une page dans ce sommaire : si la page syntaxe est affichée, j'aimerai récupérer la position 4. J'ai pondé ce premier jet :
Mais un for-each, c'est un peu lourd. Y'a pas plus simple ? J'ai fait deux/trois tests avec xsl:number, mais je ne m'en suis pas sorti :-(
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <xsl:template match="h1"> <h1> <xsl:for-each select="document('xml/sommaire.xml')/sommaire/page"> <xsl:if test="text()=$page"> <xsl:number value="position()" format="I. " /> </xsl:if> </xsl:for-each> <xsl:value-of select="." /> </h1> </xsl:template>
L'idéal serait une commande du style :
@+ Haypo
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:value-of select="document('xml/sommaire.xml')/sommaire/page[text()=$page]/position()" />
Partager