Modérateur
Bonjour,

M'essayant depuis peu au xml, je rencontre un effet pour le moins déroutant...

Je crée un fichier xml auquel j'applique une feuille xslt pour le transformer en xhtml et... çà marche! Smiley murf J'obtiens bien l'interprétation de ma page à l'écran...

Mais bon, juste un truc: Où se planque mon fichier xhtml? Smiley biggol J'ai beau fouiller partout, je le trouve pas... Quand j'affiche mon code source, je retombe systématiquement sur le code xml d'origine; l'extention est toujours en xml et il semble que la page xhtml soit créée à la volée. Bref, physiquement, elle n'existe pas...

J'ai choppé la berlue ou bien c'est normal? Smiley lol

Je fais comment pour vérifier mon code alors?
Slt,

le problème c'est simplement que ton navigateur (Firefox sans doute) ne te montre pas la page construite. Mais la transfo a obligatoirement été faite.

XSmiles (navigateur) propose les 2 source : avant et après transfo si ça t'intéresse.

a+
Modérateur
Je viens de l'installer et effectivement, je peux voir le code après transformation mais si je mets la page sur le net, comment çà se passe au juste?

Par exemple, j'ai un fichier "flip.xml" sur lequel j'applique ma feuille xslt "flap.xsl".

Un moteur de recherche ou même mes visiteurs, que vont-ils voir lorsqu'ils passeront sur le code source? "flip.xml"? Je croyais qu'il y aurait un fichier html "physique" en fait...

Celà veut-il dire que je suis obligé de me servir de XSmiles pour visualiser le code html? C'est que c'est pas très convivial comme navigateur en plus... Smiley confus

Enfin,je navigue dans la brume et je ne cerne pas bien ce qu'il se passe... Smiley sweatdrop
Modifié par koala64 (08 Dec 2005 - 23:21)
Slt,

XSmiles c'est pas super, c'est sur ^^

En fait quand un visiteur arrivera sur ta page .xml, si son navigateur le lui permet, il visualisera le résultat généré, c'est à dire le résultat après la transformation de flip.xml par la feuille de style flap.xsl. Le problème, c'est qu'à part Firefox et quelques navigateurs minoritaires, y'a pas grand monde à pouvoir effectuer la transformation côté client (transformation effectuée en toute transparence par le navigateur).

Pour le moteur de recherche, je ne pense pas qu'il transforme la page : à mon avis il prendra en compte les infos du document XML, c'est tout.

En fait, il n'y aura transformation que lorsque le programme qui analyse le fichier XML prend en compte la processing-instruction <?xml-stylesheet. Donc le fichier html physique dont tu parles, il ne sera présent que le temps qu'il faut, le temps de l'affichage pour un navigateur par exemple, et dans la mémoire vive.

Par contre, tu peux très bien effectuer la transformation d'une autre façon. Par exemple, PHP permet cela : tu crées 2 DOMDocument dans lesquels tu charges ton fichier XML puis ta feuille de style Xslt et tu effectues une transformation pour obtenir un troisième fichier que tu peux soit enregistrer, soit envoyer au navigateur. Cette méthode à l'avantage que tu n'a pas besoin de te soucier du client, puisque si tu génères du XHtml par exemple, tous les clients sont capables de traiter du XHtml.

Après il existe quelques processeurs Xslt. Tu peux y accéder à partir d'un langage (PHP, C, etc) ou alors directement en ligne de commande qui va te créer directement le fichier "physique" sur ton disque dur.

Donc en gros si tu veux te servir de Xslt pour le web, effectue la transformation côté serveur (et c'est encore mieux si t'as PHP5 ^^).

a+
Modifié par SirWam (09 Dec 2005 - 15:57)
koala64 a écrit :
Mais bon, juste un truc: Où se planque mon fichier xhtml? biggol J'ai beau fouiller partout, je le trouve pas... Quand j'affiche mon code source, je retombe systématiquement sur le code xml d'origine; l'extention est toujours en xml et il semble que la page xhtml soit créée à la volée. Bref, physiquement, elle n'existe pas...

J'ai choppé la berlue ou bien c'est normal?
Oui c'est bien le comportement normal. Il faut voir ton fichier XSLT comme une "feuille de style" (d'ailleurs XSL = extented style sheet). Donc le navigateur effectue un rendu en appliquant un style (feuille XSLT) selon un schéma similaire à ce qui se passe avec les styles CSS (cette analogie a ses limites cependant car il y a des différences notables) ou il n'y a pas de fichier après application des CSS.
SirWam a écrit :
Le problème, c'est qu'à part Firefox et quelques navigateurs minoritaires, y'a pas grand monde à pouvoir effectuer la transformation côté client
IE6 navigateur minoritaire ?!! Smiley eek

Cependant je suis d'accord pour dire qu'il ne faut pas laisser la transformation se faire chez le client (sauf intranet pour lequel on maîtrise suffisamment le poste client), mais sur le serveur.
koala64 a écrit :
Je fais comment pour vérifier mon code alors?
La moindre des choses lorsque l'on développe du XSLT c'est d'avoir au moins un processeur XSLT sous le coude. Personnellement j'utilise en local :
- PHP avec la librairie libxslt (config très recommandée sur ton serveur web, compatible php4 et php5)
- Xemacs avec extension xslt-process (2 processeurs disponibles xalan et saxon)
Je crois que Jedit implémente également une solution qui sur le plan fonctionnelle ressemble beaucoup à Xemacs.
Slt,

depuis quand IE supporte Xslt ? On ne peut pas vraiment dire que ce soit le cas de MSXML en tout cas qui a été écrit avant même que le document passe au stade de recommandation (enfin il me semble).

a+
SirWam a écrit :
Slt,

depuis quand IE supporte Xslt ? On ne peut pas vraiment dire que ce soit le cas de MSXML en tout cas qui a été écrit avant même que le document passe au stade de recommandation (enfin il me semble).

a+


Je ne me souviens pas avoir eu de difficultés avec IE6 et XSL... et pourtant j'ai pas mal pratiqué la chose Smiley cligne . Il y a peut-être quelques fonctions qui ne passent pas (peut-être quelques syntaxes un peu biscornues en XPath?)
Slt,

je crois que IE ne reconnait pas une feuille de style Xslt, sauf quand on indique un mauvais type-mime, à savoir text/xsl, qui n'est pas le bon puisque selon la spec, c'est plutôt application/xml.

a+
Modérateur
Salut,

ah c'est gentil, vous m'avez gâté là... Merci beaucoup pour vos réponses, j'apprends vite en ce moment, c'est très enrichissant... Smiley ravi Je découvre au fur et à mesure ce qu'est XML même si certains concepts me paraissent bien obscurs... XLink par exemple, je capte waloo pour l'instant... enfin, c'est normal, j'ai lu ce chapitre aujourd'hui... Smiley lol

Sirwam a écrit :
En fait, il n'y aura transformation que lorsque le programme qui analyse le fichier XML prend en compte la processing-instruction <?xml-stylesheet. Donc le fichier html physique dont tu parles, il ne sera présent que le temps qu'il faut, le temps de l'affichage pour un navigateur par exemple, et dans la mémoire vive.
C'est bien ce que je me disais aussi... enfin, comme çà, ta confirmation libère ce tracas de mon esprit...

a écrit :
Par contre, tu peux très bien effectuer la transformation d'une autre façon. Par exemple, PHP permet cela : tu crées 2 DOMDocument dans lesquels tu charges ton fichier XML puis ta feuille de style Xslt et tu effectues une transformation pour obtenir un troisième fichier que tu peux soit enregistrer, soit envoyer au navigateur. Cette méthode à l'avantage que tu n'a pas besoin de te soucier du client, puisque si tu génères du XHtml par exemple, tous les clients sont capables de traiter du XHtml.

Après il existe quelques processeurs Xslt. Tu peux y accéder à partir d'un langage (PHP, C, etc) ou alors directement en ligne de commande qui va te créer directement le fichier "physique" sur ton disque dur.

Donc en gros si tu veux te servir de Xslt pour le web, effectue la transformation côté serveur (et c'est encore mieux si t'as PHP5 ^^).
Effectivement, je compte combiner PHP et XML ( en particulier pour rentrer et extraire les données de ma bdd ) et je viens justement de lire un bouquin (Pratique de MySQL et PHP >>> O'Reilly) qui me montre quelques exemples d'utilisation... Je vais donc voir çà en ajoutant cette partie pour générer ma page xhtml...


Concernant la prise en charge par IE, il a fallu effectivement que je mette le type mime à text/xsl pour que çà passe... J'ai lutté pour trouver mais à force de multiplier les sources, j'ai réussi... Smiley murf Celà dit, ils disaient bien que ce type mime n'était et ne sera pas enregistré auprès de l'IANA et que c'était une invention provenant de l'imaginaire de Microsoft. Dans le futur, ils conseillaient d'ailleurs d'utiliser application/xslt+xml comme type mime afin d'identifier précisemment les feuilles de style XSLT... bref, on verra bien ce que l'avenir nous réservera...

Merci encore... Smiley smile

.... avec un double pour Gilles vu que ton cours me sers beaucoup en ce moment... Smiley cligne
XML en concentré j'imagine Smiley lol ?

Sinon, si tu envisages d'utiliser Xslt avec php, fais le avec PHP5 si possible.

a+
Bah comme ça t'as DOM qui fait parti du coeur de php5 et l'extension XSL. Les deux en même temps, c'est vraiment puissant Smiley lol

++
Modifié par SirWam (09 Dec 2005 - 21:52)
Sinon, il y a uen extension Firefox qui permet de voir la source finale (View rendered source). Malheureusement, elle n'est pas encore dispo pour Firefox 1.5.

a+