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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 !
Partager