inserer du PHP dans un fichier XSL

inserer du PHP dans un fichier XSL - XML/XSL - Programmation

Marsh Posté le 04-06-2009 à 18:02:32    

Bonjour,
je viens de créer un petit fichier XML:

Code :
  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="xsl.xsl"?>
  3. <personne>
  4. <nom>
  5.  mon nom
  6. </nom>
  7. <prenom>
  8.  mon prenom
  9. </prenom>
  10. <age>
  11.  23
  12. </age>
  13. </personne>


 
et je lui ai affecté une feuille de style XSL qui est la suivante:
 

Code :
  1. <?xml version='1.0'?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:template match="/">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
  7. <meta http-equiv="Content-Style-Type" content="text/css" />
  8. <title>
  9. </title>
  10. <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
  11. </head>
  12. <body>
  13. hi, je m'appelle <xsl:value-of select="personne/nom"/> <xsl:value-of select="personne/prenom"/> et mon age est
  14. <xsl:value-of select="personne/age"/> ans
  15. <br/>
  16. <br/>
  17. <?php
  18.        echo "gggggggg";
  19. ?>
  20. </body>
  21. </html>
  22. </xsl:template>
  23. </xsl:stylesheet>


 
Alors, tout s'affiche bien sauf la partie qui contient le script php, pourquoi??
Est ce que le XSL ne comprend pas le PHP ou quoi??

Reply

Marsh Posté le 04-06-2009 à 18:02:32   

Reply

Marsh Posté le 05-06-2009 à 09:48:42    

En effet le XSL ne comprend rien au PHP, ni a un autre langage d'ailleurs... le XSL transforme du XML point barre.
 
Le problème c'est que les balises php n'ont rien d'xml valide ce qui perturbe le XSL. Il te faudra 'échapper' tout ça en utilisant une section CDATA, comme dans l'exemple:
 

Code :
  1. <![CDATA[
  2. <?php
  3.         echo "gggggggg";
  4. ?>
  5. ]]>


 
La section CDATA dit en gros au moteur XSL "n'essaye pas de comprendre, tais toi et recopie moi tout ça tel quel'.   :D  
 

Reply

Marsh Posté le 05-06-2009 à 10:39:15    

par contre si tu appelle ta feuille xsl xsl.php, et que dedans tu mets ca:  

Code :
  1. <?
  2. header("Content-type: text/xml" );
  3. print "<?xml version='1.0'?>";
  4. ?>
  5. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  6. <xsl:template match="/">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
  10. <meta http-equiv="Content-Style-Type" content="text/css" />
  11. <title>
  12. </title>
  13. <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
  14. </head>
  15. <body>
  16. hi, je m'appelle <xsl:value-of select="personne/nom"/> <xsl:value-of select="personne/prenom"/> et mon age est
  17. <xsl:value-of select="personne/age"/> ans
  18. <br/>
  19. <br/>
  20. <?php
  21.        echo "gggggggg";
  22. ?>
  23. </body>
  24. </html>
  25. </xsl:template>
  26. </xsl:stylesheet>


 
la ca marche (si tu as du php sur ta machine bien sur)


Message édité par pataluc le 05-06-2009 à 10:40:48
Reply

Sujets relatifs:

Leave a Replay

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