Xsl : trier et grouper des éléments

kd -  
 slooptoo -
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>
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. slooptoo
     
    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