[XML/XSL/Javascript] Transformer du XML en javascript

Transformer du XML en javascript [XML/XSL/Javascript] - HTML/CSS - Programmation

Marsh Posté le 10-05-2006 à 17:31:03    

Bonjour à tous,
 
Je vous précise le sujet...
 
Je dispose d'une page xhtml contenant un script javascript.
 
Ce script récupère (avec XMLHTTPRequest) plusieurs fichiers XML.  
 
Il rassemble ensuite en une seule "entité" (en fait DOM ou texte) ces différents fichiers XML.
 
On obtient en gros une String contenant du XML.
 
Le but est maintenant avec javascript de charger ce contenu XML dans le browser. Attention ce contenu XML n'est pas un fichier (il est issu de "merge" (ou concaténation) de plusieurs fichiers XML !), et ne peut donc pas être chargé comme une URL.
 
Ce contenu XML contient un lien vers une stylesheet XSL.
 
 
 
Le but est donc à partir d'un script javascript de charger dans le browser un contenu XML (non pointable par une URL), qui devra être transformé par la suite à l'aide d'une feuille XSL...
 
 
Je suis désolé pour le peu de clarté de ce post, mais j'essaie de faire de mon mieux  :pt1cable:  
 
En tous cas merci d'avoir lu ce post, et n'hésitez pas à me faire part de vos idées !
 
Si vous le désirez je peux vous poster un bout de code pour voir comment j'obtient mon "contenu" XML...

Reply

Marsh Posté le 10-05-2006 à 17:31:03   

Reply

Marsh Posté le 10-05-2006 à 17:49:34    

pas possible comme tu le demandes:o
 
Par contre tu peux faire appliquer ta xsl sur ton xml. Seul IE et Moz supportent ça ( Opera9 aussi mais toujours en béta).
Toujours avec ton xmlHttpRequest tu récupères ta xsl puis

  • pour IE (c'est le plus simpe( si si c'est vrai)) il faut juste faire un transformNode de ton domDoc avec ta xsl en paramètre.
  • sur Moz, il faut instancier un  XSLTProcessor puis importer le stylesheet (importStylesheet) et appliquer la transformation (transformToDocument).

L'inconvénient de cette méthode, tu l'auras compris c'est qu'elle se vautre lamentablement sur les autres navigateurs.
 
La meilleure solution est donc de faire faire ta transfo par un script sur le serveur. Donc tu renvoies ton flux xml à un script, celui-ci le transforme via la xslt et te retourne l'html généré. Au moins ça marche sur tous les navigateurs ( supportant xmlHttpRequest).

Reply

Marsh Posté le 10-05-2006 à 18:08:57    

Merci pour ta réponse rapide :)
 
Effectivement l'application du XSL par Javascript est une échappatoire à mon problème. De toute façon je ne suis pas (trop xD) obligé d'être portable, vu qu'il s'agit d'une solution dédiée. Je choisis a priori le browser que je veux.
 
En fait ce que je cherche c'est une approche Javascript du XInclude qui n'est malheureusement pas géré par les browsers...
 
Enfin en tous cas merci pour la solution :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed