Re: Interprétation PHP dans XSL

Stéphane Bonhomme <[email protected]>
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Mathieu Fernandez wrote:

>Eric van der Vlist a écrit :
>  
>
>>Le lundi 11 septembre 2006 à 17:32 +0200, Mathieu Fernandez a écrit :
>>  
>>    
>>
>>>quand je dis que ça ne marche c'est que ça ne fais absolument rien : 
>>>dans la page il n'y a rien qui se passe (à l'affichage) et dans le code, 
>>>le PHP disparait mais il n'est pas interprété (c'est comme si j'avais 
>>>fait <?php ?> (un code PHP qui ne fasse rien)
>>>    
>>>      
>>>
>>Comment utilisez-vous cette transformation? Pour que cela "marche", il
>>faut que vous utilisiez cette transformation pour générer des documents
>>PHP que vous publierez ensuite sur un serveur web...
>>
>>Si c'est bien le cas, pouvez-vous vérifier à quoi ressemble le PHP que
>>la transformation génère?
>>
>>Cordialement,
>>
>>Eric van der Vlist 
>>
>>  
>>    
>>
>Alors je vais tout mettre à plat et tout mieux expliquer :
>- je dois développer un site anglais/français et pour ce faire j'utilise 
>une feuille XML pour chaque page de chaque langue et je mets ensuite en 
>page avec des feuilles XSL
>- ayant des parties redondantes dans toutes mes pages (l'entête, le haut 
>de page et le bas de page) je fais des include afin de pouvoir mettre à 
>jour et de pouvoir modifier mes pages plus facilement par la suite
>- j'utilise également un script PHP qui me compte le nombre de fichiers 
>qui se trouve dans un dossier.
>
>  
>
ok, c'est donc le cas "atypique" dont parlait Eric hier :)

>Je me retrouve donc avec des fichiers XML qui sont transformés par des 
>feuilles de style XSL qui sont censé m'insérée le code PHP dans la page 
>de sortie. Or en utilisant les astuces suivantes :
>http://xmlfr.org/listes/xml-tech/2004/10/0013.html
>http://xmlfr.org/listes/xml-tech/2002/03/0342.html
>ça ne fonctionne pas.
>
>Voici mon exemple :
>*fichier XML*
><?xml version="1.0" encoding="iso-8859-1"?>
><?xml-stylesheet href="plan_site.xsl" type="text/xsl" ?>
>
><page nom="Accueil">
>    <titre>Bienvenue</titre>
>    <intro>Ma petite intro</intro>
>    <image type="aleatoire">images\random</image>
>    <paragraphe>J'ai un rève-qu'un jour, cette nation se lèvera et vivra 
>la vrai signification de son croyance: "Nous tenons ces vérités comme 
>allant de soi, que les hommes naissent égaux."</paragraphe>
></page>
>
>*fichier XSL :*
><?xml version="1.0" encoding="iso-8859-1" ?>
><xsl:stylesheet version="1.0" 
>xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
><xsl:output method="html" indent="yes" encoding="iso-8859-1" /> 
>  
>
Là il faut mettre method="xml" si vous voulez faire du xhtml  (et 
acessoirement utiliser les processing-instruction que votre processeur 
semble ne pas savoir sortir en xml)

><!--méthode de sortie XHTML-->
><xsl:strip-space elements="*"/> <!--nettoyage du document XML pour ne 
>pas conserver des retours-chariots-->
>
><xsl:template match="page">
><html>
>    <!--inclusion de l'entête qui ne change jamais-->
>    <!--<script language='php'> include "fr/entete.html";</script> ça 
>c'est ce que je fais au début mais ça ne fais rien, ça m'inscrit simple 
>le code PHP dans la page HTML sans rien interpréter-->
>
>    <xsl:processing-instruction name="php">
>        <xsl:text>include ("</xsl:text>
>        <xsl:value-of select="normalize-space(haut_page.html)"/>
>  
>
ici cela ne risque pas de donner grand chose, l'élément page (élément 
courant) n'a pas de fils s'appellant <haut_page.html>; ce value-of 
renverra donc une chaine vide, si vous voulez inclure un fichier 
externe, il faut qu'il soit au format xml et utilisez :

<xsl:value-of select="normalize-space(document('haut_page.xml'))"/>


>        <xsl:text>");</xsl:text>
>    </xsl:processing-instruction>
>    <body>
>        <!--affichage centré du site et résolution 800x600-->
>        <div id="centrer">
>          <h2 id="pageName"><xsl:value-of select="@nom"/></h2>
>          ....
>        </div>
>        <!--fin centrer-->
>    </body>
></html>
></xsl:template>
></xsl:stylesheet>
>  
>
avec ces quelques pistes vous devriez vous en sortir.

Cordialement,
Stéphane.

-- 
   Stéphane Bonhomme           --           Exselt Services

Formations, Conseil et Réalisations en Ingénierie Documentaire,
            Technologies Web et Logiciels Libres
     [email protected]   -   http://www.exselt.com
        04 76 17 09 40        /      06 88 57 27 08
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.