Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Re: Interprétation PHP dans XSL

[xml-tech] Re: Interprétation PHP dans XSL

Auteur: Stéphane Bonhomme <s.bonhomme@wanadoo.fr>
Date: 12/09/2006 - 09:22

Mathieu Fernandez wrote:

>Stéphane Bonhomme a écrit :
>
>
>>Attention, il semble que vous fassiez une confusion :
>>
>>D'après ce que vous indiquez, vous effectuez la transformation xslt sur
>>le navigateur. Il faut bien comprendre que dans les cas sités
>>précédemment (dans les liens sur les archives de la liste), les
>>transformations interviennent bien en amont et produisent les fichiers à
>>déposer sur le serveur.
>>
>>Lorsque vous produisez du code php par xslt, celui-ci doit ensuite être
>>interprété par un processeur php, lequel n'existe que coté serveur. La
>>feuille de style dont nous parlons doit donc être utilisée comme
>>préparation des données à publier sur le serveur web et *en aucun cas*
>>executée par le navigateur !
>>
>>données XML ------transformations xsl ---> fichiers PHP -----serveur
>>http (web)------>html ->navigateur
>>
>>un fois ce point eclairci, vous comprendrez mieux pourquoi votre php ne
>>peut pas fonctionner
>>
>>
>>
>>>Je comprends absolument plus rien là :
>>>1° solution : Si je mets method="xml", j'ai tout qui se concatène dans
>>>ma page (le navigateur ne prend plus en compte les balises) et aucun
>>>include ne fonctionne (par exemple dans un de mes include j'ai ma CSS et
>>>elle n'est pas prise en compte), par contre, dans mon fichier source:
>>>
>>>
>>C'est pourtant la bonne solution, perserverez dans cette voie
>>
>>
>>
>>
>>>2° solution : Si je mets method="html", c'est exactement comme au début,
>>>ma mise en page est "bonne" (les balises HTML sont interprétées) par
>>>contre aucun include n'apparait, ni sur la page ni dans les sources.
>>>
>>>
>>>
>>Normal, lorsque l'output method est html, le processeur xslt du
>>nivagateur ignore purement et simplement les xsl:processing-instruction
>>
>>
>>
>>
>>>Je deviens fou là.
>>>
>>>
>>l ne faut pas, faites un schema des fulx de données, et des types de
>>données circulant cela vous aidera à y voir clair (où est le xml, le
>>xslt, le php, ou sont interprétés le xslt, le php, le css).
>>
>>
>>
>>
>>>PS : J'ai fait comme vous me dîtes mais le problème c'est que mes
>>>fichiers sont au format HTML, je ne peux donc pas les tranformer au
>>>format XML.
>>>
>>>
>>Pour cela il y a tidy, ou encore xmllint, ou meme l'implementation dom
>>de php5 qui sont capables de parser du html pour soit produire du xml
>>bien formé, soit un arbre dom.
>>
>>
>Pour les include je m'en suis sorti autrement, merci tout de même.
>Et merci pour votre patience aussi :o)
>
>
on serait pas là à répondre sans patience :)

>Mais je dois toujours trouver le moyen d'utiliser le PHP pour ma
>fonction qui me compte les fichiers d'un dossier (et puis pour la
>culture en général, c'est bon à savoir:o))
>Je comprends mieux maintenant le problème : le PHP n'a pas le temps
>d'être interprété par le serveur, il faut donc que ma feuille de style
>XSL crée le fichier PHP pour que que celui-ci soit ensuite interprété
>par le serveur pour qu'il me génère du XHTML, c'est bien ça.
>
>Or en utilisant method="xml", il me génère diectement du XHTML, ça ne
>pose pas de problème ?
>
>
A priori non, en tout cas certainement moins qu'en html !

>Deuxième problème, quand vous me dîtes : "La feuille de style dont nous
>parlons doit donc être utilisée comme préparation des données à publier
>sur le serveur web et *en aucun cas* executée par le navigateur !"
>comment ça se réalise ça?
>
>
Il y a plusieurs façons de "jouer" le xslt :

- par une transformation "batch", en ligne de commande (xsltproc), ou
dans une interface spécialisée du type XmlSpy ou oXygen
  => produit un fichier (ou une sortie standard dans le cas ligne de
commande)

- par une transformation dynamique sur le serveur : le xslt est appliqué
au moment ou le serveur traite la requête (en codant l'appel du
processeur xslt en php, ou à l'aide d'un module serveur spécialisé, tel
que mod_xslt d'apache).
  => produit un flot de données qui sont renvoyées au navigateur via la
réponse http

- par une une transformation sur le navigateur : les données xml et la
feuille xslt sont envoyées (via http) au navigateur qui réalise la
transformation avant d'afficher le résultat (c'est l'objet du
<?xml-stylesheet.... présent dans votre fichier xml, qui permet de dire
au navuigateur ou charger la feuille de style à appliquer)

>Dans ma tête je vois la chose ainsi : il faut que je crée un fichier PHP
>grâce à cette feuille XSL et que j'éxecute ensuite ce fichier PHP sur le
>serveur pour qu'il soit interprété mais comment faire?.
>
>
il faut donc utiliser la méthode 1 ci dessus (en fait il est également
possible d'utiliser la 2 en disant à php d'interpréter le code produit
par la transformation, c'est la méthode proposée par
http://xmlfr.org/listes/xml-tech/2004/10/0013.html (voir la fonction
eval() à la fin du traitement).

>Par exemple je crée une fonction qui me compte le nombre de fichier dans
>un dossier et en prend un au hasard, je fais donc :
><xsl:processing-instruction name="php">
> <xsl:text>
> function count_files($dir)
> { ...}
> ...
> echo $retour;
> </xsl:text>
></xsl:processing-instruction>
>
>j'ai donc le code qui apparait dans mon source mais qui n'est pas
>éxécuté, il faudrait donc que je puisse rappeler cette page afin
>d'éxécuter le PHP qu'elle contient mais j'ai beau réfléchir je ne vois
>pas du tout comment faire...
>
>
>
non pas rappeller la page, mais faire la tranformation *avant* de
déposer les fichiers sur le serveur, ainsi vous ne servez pas le
xml+xslt, mais le php résultant de la transformation (j'espere que ceci
convient à votre processus)

>PS : je débute dans le domaine donc ne m'en voulait pas si je pose des
>questions un peu bateau pour vous, elles sont d'un grand aide pour moi.
>
>
pas de porbleme ;)

>
>--
>Devenez redacteur <XML>fr et contribuez au developpement du
>xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
>Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
>Cette liste est a votre disposition pour discuter en francais de
>tout sujet technique lie a XML.
>
>Pour resilier votre abonnement, envoyez un message contenant
>la commande "unsubscribe" a xml-tech-request@xmlfr.org
>(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
>
>---------------------------------------------------------------------------------------
>Orange vous informe que cet e-mail a ete controle par l'anti-virus mail.
>Aucun virus connu a ce jour par nos services n'a ete detecte.
>
>
>
>

-- 
   Stéphane Bonhomme           --           Exselt Services
Formations, Conseil et Réalisations en Ingénierie Documentaire,
            Technologies Web et Logiciels Libres
     stephane@exselt.com   -   http://www.exselt.com
        04 76 17 09 40        /      06 88 57 27 08 
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de 
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant 
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Tue Sep 12 11:22:11 2006

Archive générée par hypermail 2.1.8 le 27/09/2006 - 05:52 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement