Xsl : trier et grouper des éléments

Fermé
kd - 15 janv. 2007 à 12:41
 slooptoo - 16 janv. 2007 à 11:14
XSL : for-each : afficher un élément une fois

Bonjour à tous, je cherche à afficher le contenu d'un fichier xml qui contient des rubriques et des articles, comme suit :

<EXPORT>
<ARTICLES>
<ARTICLE ID="1"><IDRUBRIQUE>5</IDRUBRIQUE> <LIBRUBRIQUE></LIBRUBRIQUE><CONTENU>blablabla</CONTENU></ARTICLE>
<ARTICLE ID="2"><IDRUBRIQUE>2</IDRUBRIQUE> <LIBRUBRIQUE></LIBRUBRIQUE><CONTENU>blablabla</CONTENU></ARTICLE>
<ARTICLE ID="1"><IDRUBRIQUE>5</IDRUBRIQUE> <LIBRUBRIQUE></LIBRUBRIQUE><CONTENU>blablabla</CONTENU></ARTICLE>
</ARTICLES>
</EXPORT>


Je voudrais faire apparaître le nom de la rubrique une seule fois puis le titre de chaque article rattaché à la rubrique. En utilisant for-each avec ou sans xsl:sort, il ne regroupe pas les rubriques. Quelqu'un aurait une idée?

<?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"/>
<xsl:template match="/">

<xsl:for-each select="EXPORT/ARTICLES_SEMAINE/ARTICLE">
<xsl:sort select="ID_RUBRIQUE"/>
<p><xsl:value-of select="LIB_RUBRIQUE"/><br/><xsl:value-of select="TITRE"/></p>

</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

1 réponse

le xml de départ n'est pas bien hiérarchisé car la rubrique qui englobe des articles (en théorie) se retrouve ici sous les articles
donc ce sera très difficile à réaliser
0