Bonjour,
Le problème consiste à appliquer une sorte de "filtre" dynamique sur une liste d'éléments.
L'exemple qui suit est sans doute faux, mais donne l'idée du résultat recherché.
XML
XSLT
XHTML résultant
Ici, le paramètre/la variable $selection vaudrait : /repas/plat[not(@chaud) ], mais on pourrait aussi vouloir sélectionner les plats qui contiennent des légumes /repas/plat[@legumes ], etc.
Bref, comment rendre variable le paramètre select du xsl:for-each ?
Cordialement,
François
Modifié par elvex (04 Jun 2006 - 22:56)
Le problème consiste à appliquer une sorte de "filtre" dynamique sur une liste d'éléments.
L'exemple qui suit est sans doute faux, mais donne l'idée du résultat recherché.
XML
<repas>
<plat legumes="legumes">Tarte tomate-mozarella</plat>
<plat chaud="chaud" viande="viande">Poulet aux quatre épices</plat>
<plat chaud="chaud" legumes="legumes">fricassée de courgettes</plat>
<plat fruits="fruits">Crumble aux fruits de saison</plat>
</repas>
XSLT
<xsl:template select="/">
<h1>Liste des plats froids</h1>
<ul>
<xsl:for-each select="$selection">
<li><xsl:value-of select="." /></li>
</xsl:for-each>
</ul>
</xsl:template>
XHTML résultant
<h1>Liste des plats froids</h1>
<ul>
<li>Tarte tomate-mozarella</li>
<li>Crumble aux fruits de saison</li>
</ul>
Ici, le paramètre/la variable $selection vaudrait : /repas/plat[not(@chaud) ], mais on pourrait aussi vouloir sélectionner les plats qui contiennent des légumes /repas/plat[@legumes ], etc.
Bref, comment rendre variable le paramètre select du xsl:for-each ?
Cordialement,
François
Modifié par elvex (04 Jun 2006 - 22:56)