Bonjour,
J'ai un fichier Xml qui se présente sous cette forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <article> <phrase> <p>Le chat est noir</p> </phrase> <phrase> <p></p> </phrase> </article>
Je souhaiterai supprimer les noeuds vides. En effet, j'utilise la fonctionpour supprimer les balises sans texte et cela me donne :Xsl:choose
Le problème est que je n'arrive pas à supprimer les noeuds parents vides qui sont ici "<phrase>"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <article> <phrase> <p>Le chat est noir</p> </phrase> <phrase> </phrase> </article>
Voilà le code XSL pour engendrer la transformation :
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 <xsl:template match="*"> <xsl:choose> <!--SI la balise contient du texte on recopie les noeuds--> <xsl:when test="* | text ()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:when> <!--Sinon--> <xsl:otherwise> <xsl:comment>NETTOYAGE BALISE VIDE <xsl:apply-templates select="@*|node()"/></xsl:comment> </xsl:otherwise> </xsl:choose> </xsl:template>
Partager