Bonjour,
Je bute sur un petit problème de transformation XSLT.
Je transforme un document XML au format DocBook en un document HTML. Je cherche à sélectionner toutes les sections simples db:simplesect d'une section db:section excepté le titre de la première section simple.
Le but est de transformer ceci :
en ceci :
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 <section xml:id="sectionid"> <title>Titre de la section</title> <simplesect> <title>Titre 1</title> <para>Mon premier paragraphe</para> </simplesect> <simplesect> <title>Titre 2</title> <para>Mon deuxième paragraphe</para> </simplesect> <simplesect> <title>Titre 3</title> <para>Mon troisième paragraphe</para> </simplesect> </section>
J'ai essayé ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <h3>Titre de la section</h3> <p>Mon premier paragraphe</p> <h4>Titre 2</h4> <p>Mon deuxième paragraphe</p> <h4>Titre 3</h4> <p>Mon troisième paragraphe</p>
ou ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <xsl:template match="db:section/db:simplesect"> <h4><xsl:value-of select="db:title[not(parent::db:simplesect[position()=1])]" /></h4> <xsl:apply-templates select="* except db:title" /> </xsl:template>
Ca ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:template match="db:section/db:simplesect"> <xsl:apply-templates select="* except parent::db:simplesect[1]/db:title" /> </xsl:template>
J'ai pensé aussi à ça :
Ca ne fonctionne pas non plus et j'ai même 2 fois le texte du titre de la section.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <xsl:template match="db:section"> <h3><xsl:value-of select="db:title"/></h3> <xsl:apply-templates select="* except db:simplesect[1]/db:title"/> </xsl:template>
Je pense que j'ai un sérieux problème avec la formulation du prédicat.
Merci de votre aide.
Vincent
Partager