Bonjour à tous,
Voilà, j'aurais voulu savoir s'il était possible de passer un paramètre à un fichier xsl précisant quels élément de mon fichier XML doivent être afficher, la valeur du param étant défini dynamiquement...
Bonjour à tous,
Voilà, j'aurais voulu savoir s'il était possible de passer un paramètre à un fichier xsl précisant quels élément de mon fichier XML doivent être afficher, la valeur du param étant défini dynamiquement...
C'est ce que j'essaye de faire.... cf ce post
Pour l'instant, j'ai pas encore trouvé de solution.
En sachant que les paramètres ne peuvent pas être transmis par l'URL en XSLT, cf la FAQ XML.
Disons que le seul moyen que je vois pour faire ça (mais bon ça veut rien dire, y'a sûrement mieux : mes connaissances sont relativemlent limitées en XSL), c'est de mettre votre param dans un fichier xml que vous appelerez dans votre XSL (avec la fonction document) afin de récupérer son contenu, c'est-à-dire votre fameux paramètre.
Mais bon il faut que vous alliez mettre votre paramètre dans un fichier xml, ce qui est pas forcément très pratique ...
Bonjour,
une petite précision : le paramètre est passé au processeur XSLT qui traite la feuille de style, pas à la feuille de style elle-même. Ca paraît être une nuance inutile, mais en fait c'est par là qu'il faut chercher. S'il s'agit d'une transformation faite en local par le navigateur, la FAQ du forum donne une réponse pour IE. S'il s'agit d'une transformation faite côté serveur, la documentation du langage de script utilisé donnera la solution. S'il s'agit d'une transformation off-line, par appel direct au processeur XSLT, la documentation du processeur sera la clé, etc.
Voilà, je pensais à un truc... admettons qu'en fonction du paramètre défini par l'utilisateur je créé un fichier XML dynamiquement avec le DOM. Ayant un fichier xsl prédéfini, je peux alors demander l'affichage de mon XML dynamique selon le xsl... Ca pourrait marcher non ???
Bien sûr. Les moyens qu'il faudra mettre précisement à l'oeuvre dépendent cependant du langage et des outils que tu utilises.Envoyé par Royd938
Euh.... en XHTML et Javascript.... c'est quand même faisable ?Envoyé par GrandFather
Selon moi, il faut utiliser un langage côté serveur (C#, php, pyton...)...
C'est dans la FAQ.Envoyé par Perceval
petit detail mais qui a son importance, la plupart des processeurs permettent , via les instructions du langages utilises, de passés des collections de noeunds (et leur arborescence) en parametre, cela peut donc resoudre un certains nombre de probleme
exemple
en javascript
fichier xml param
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?xml version="1.0" encoding="UTF-8"?> <root> <a> <b>1</b> <c>2</c> </a> <a> <b>3</b> <c>4</c> </a> </root>Au parametre arbre de la feuille xslt on pourra appliquer les xpath souhaité, il est considere comme une collection de noeud
Code : 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <script type="text/javascript"> function proc() { var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0"); var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0"); var xslProc; xslDoc.async = false; xslDoc.load("test.xslt"); xslt.stylesheet = xslDoc; var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); xmlDoc.async = false; xmlDoc.load("test.xml"); var xmlpara = new ActiveXObject("Msxml2.DOMDocument.4.0"); xmlpara.async = false; xmlpara.load("para.xml"); xslProc = xslt.createProcessor(); xslProc.input = xmlDoc; param=xmlpara.selectnodes("//a") xslProc.addParameter("arbre", param); xslProc.transform(); document.body.innerHTML=xslProc.output; } </script>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager