Utilisation de XSLT 1.0, j'essaie de créer essentiellement un petit jeu de nœuds, puis de le transmettre en tant que paramètre à un modèle, comme ce qui suit:
<xsl:call-template name="widget">
<xsl:with-param name="flags">
<items>
<item>widget.recent-posts.trim-length=100</item>
<item>widget.recent-posts.how-many=3</item>
<item>widget.recent-posts.show-excerpt</item>
</items>
</xsl:with-param>
</xsl:call-template>
L'idée est qu'à partir de l'intérieur du modèle widget
, je pouvais écrire quelque chose comme:
<xsl:value-of select="$flags/item[1]" />
Évidemment, je reçois des erreurs de compilation .. Comment puis-je réaliser ce genre de chose?
Eh bien, j'ai réussi à contourner cela de la manière suivante:
Ajoutez d'abord un espace de noms personnalisé à votre feuille de style, par exemple. xmlns:myns="http://my.ns.com"
Définissez ensuite les nœudset en haut de la feuille de style:
<myns:recent-posts-flags>
<item>widget.recent-posts.trim-length=100</item>
<item>widget.recent-posts.how-many=3</item>
<item>widget.recent-posts.show-excerpt</item>
</myns:recent-posts-flags>
Ensuite, référence de la manière suivante:
<xsl:call-template name="widget">
<xsl:with-param name="flags" select="document('')/*/myns:recent-posts-flags" />
</xsl:call-template>
Cela fonctionne, mais il serait toujours idéal pour que je puisse définir le nœud défini dans le <xsl:with-param>
tag elle-même, comme dans le premier exemple que j'ai donné. Tout le monde pense que ce serait possible?