[XSLT] Supprimer les noeuds vides
Bonjour,
J'ai un fichier Xml qui se présente sous cette forme :
Code:
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 fonction pour supprimer les balises sans texte et cela me donne :
Code:
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> |
Le problème est que je n'arrive pas à supprimer les noeuds parents vides qui sont ici "<phrase>"
Voilà le code XSL pour engendrer la transformation :
Code:
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> |