Stéphane Bonhomme a écrit :
> 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).
Merci de m'avoir aider vous y avez passer du temps, je vous en suis très
reconnaissant.
J'ai cherché un peu de partout mais c'est vraiment pas fait pour ça le
XSL donc je vais essayé de me débrouiller pour faire quelque chose de
plus académique et de moins tordu et atypique ;o) Je vais créer mon XSL
grâce à mon PHP, ça sera plus simple.
Encore merci pour votre aide.
Au revoir.
--
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 15:10:04 2006