Eliminer des doublons (XSLT 1.0)
On se propose de faire disparaître de l'affichage d'un fichier XML
des valeurs identiques. Le même principe pourrait évidemment
être utilisé pour épurer un fichier XML de ses doublons.
Soit le fichier XML suivant :
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="doublons.xsl"?>
<doc>
<objet attribut="3"/>
<objet attribut="5"/>
<objet attribut="3"/>
<objet attribut="2"/>
<objet attribut="3"/>
<objet attribut="1"/>
<objet attribut="3"/>
<objet attribut="2"/>
<objet attribut="3"/>
</doc>
On se propose d'afficher dans un tableau l'ensemble des valeurs des
attributs des éléments objet en les classant par valeurs
croissantes et en éliminant les doublons.
La feuille de transformation sera la suivante :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" encoding="ISO-8859-1"/>
<xsl:template match="doc">
<html>
<body>
<table border="1">
<xsl:for-each select="objet[not(@attribut = preceding-sibling::objet/@attribut)]">
<xsl:sort order="ascending" data-type="number" select="@attribut"/>
<tr><td><xsl:value-of select="@attribut"/></td></tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
On obtiendra l'affichage suivant :
Voir/Télécharger les fichiers de l'exemple
:
Contribuez ! Faites-nous profiter
de vos exemples les plus significatifs.
Retour à la page d'accueil.