[XSL] Une variable dans un xsl ?
Bonjour,
Alors je vais essayer d'être clair mais ça me parait compliqué...
J'ai trois fichiers (un XML, un XSL pour le mettre en forme et un PHP convertir le tout en HTML) qui une fois inclus dans mon site constitueront un menu dynamique.
Afin que vous compreniez mieux, je vous met la source des 3 fichiers :
XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?xml version="1.0" encoding="UTF-8"?>
<tabs>
<tab style="orange" position="7" text="A l'école">
<link text="L'équipe à l'école" target="/contenu/ecole/equipe.php"/>
<link text="Nos Actions" target="/contenu/ecole/actions.php"/>
</tab>
<tab style="blue" position="8" text="Au collège">
<link text="L'équipe au collège" target="/contenu/college/equipe.php"/>
<link text="Nos Actions" target="/contenu/college/actions.php"/>
</tab>
<tab style="green" position="9" text="L'assoc'">
<link text="Nous contacter" target="/contenu/assoc/contact.php"/>
<link text="Adhérer" target="/contenu/assoc/adhesion.php"/>
<link text="Proposer votre aide" target="contenu/assoc/aide.php"/>
</tab>
</tabs> |
XSL :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="html" omit-xml-declaration="yes" encoding="UTF-8" />
<xsl:template match="//tab[@position='9']/link">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@target"/>
</xsl:attribute>
<xsl:value-of select="@text"/>
</a>
<br/>
</xsl:template>
</xsl:stylesheet> |
PHP :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?php
// Nouvelle instance
$xslt = new XSLTProcessor();
// Chargement du fichier XML
$xml = new domDocument();
$xml -> load('menu.xml');
// Chargement du fichier XSL
$xsl = new domDocument();
$xsl -> load('links.xsl');
// Import de la feuille XSL
$xslt -> importStylesheet($xsl);
// Transformation et affichage du résultat
echo $xslt -> transformToXml($xml);
?> |
En fait le problème c'est que le sélecteur XSL position doit être variable (position doit pouvoir prendre n'importe quelle valeur numérique et ce en fonction d'un argument passé à PHP.
Concrètement, PHP doit être en mesure de me retourner les liens correspondants à l'onglet sélectionné.
Quelqu'un voit comment on peut faire ça ?
Merci d'avance !