Forum Clubic

PHP version 4.3 et XSL

Bonjour, voila j’ai un fichier php comme ceci:

<?php
/**********************************************************
Fonction remplirCommandes()
Paramètre d'entrée GET:	fichier => XML a mofifier
***********************************************************/
$fichierXML="../data/".$_GET['fichierXML'];
$fichierXSL="../data/".$_GET['fichierXSL'];


if(!$xml = domxml_open_file($fichierXML)) {
  exit("Erreur lors de l'analyse du document");
}

if(!$xsl = domxml_xslt_stylesheet_file($fichierXSL)) {
  exit("Erreur lors de l'analyse du document");
}

$html = $xsl->process($xml);
echo $html->dump_mem();
?>

et un fichier xsl comme ceci:

<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version="1.0">
<xsl:output encoding="UTF-8"/>
<xsl:output method="html?quot; indent="yes"/>
<xsl:template match="/" name="montage">
	<ul id="ul_montage" class="mesmontages" >
  <xsl:for-each select="montage/articles[etatAvancementArticle='Bouclage']">
    <li class="mesmontages"  onMouseOver="this.style.backgroundColor='#c0e0ff';" onMouseOut="this.style.backgroundColor='#FFFCE6';">
    	<xsl:attribute name="id">m<xsl:value-of select="idMontage"/></xsl:attribute>
    	<span  class="source"><xsl:value-of select="source"/> - </span>
    	<span  class="titre"><xsl:value-of select="titre"/> - </span>
    	<span  class="date"><xsl:value-of select="dateArticle"/></span>
    </li>
  </xsl:for-each>
	</ul>
</xsl:template>
</xsl:stylesheet>

Dans ce cas, tout fonctionne, l’affichage se fait parfaitement. Mais j’aurai besoin de passer des paramètre a mon fichier xsl donc je decide de remplacer la fonction domxml_xslt_stylesheet_file($fichierXSL) par domxml_xslt_stylesheet($fichierXSL) et de construre moi meme dans un flux le fichier xsl et la… affichage vide…

<?php
/**********************************************************
Fonction remplirCommandes()
Paramètre d'entrée GET:	fichier => XML a mofifier
***********************************************************/
$fichierXML="../data/".$_GET['fichierXML'];

$fichierXSL='<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="UTF-8"/>
<xsl:output method="html?quot; indent="yes"/>
<xsl:template match="/" name="montage">
	<ul id="ul_montage" class="mesmontages" >
  <xsl:for-each select="montage/articles[etatAvancementArticle=Bouclage]">
    <li class="mesmontages"  onMouseOver="this.style.backgroundColor=#c0e0ff;" onMouseOut="this.style.backgroundColor=#FFFCE6;">
    	<xsl:attribute name="id">m<xsl:value-of select="idMontage"/></xsl:attribute>
    	<span  class="source"><xsl:value-of select="source"/> - </span>
    	<span  class="titre"><xsl:value-of select="titre"/> - </span>
    	<span  class="date"><xsl:value-of select="dateArticle"/></span>
    </li>
  </xsl:for-each>
	</ul>
</xsl:template>
</xsl:stylesheet>';


if(!$xml = domxml_open_file($fichierXML)) {
  exit("Erreur lors de l'analyse du document");
}

if(!$xsl = domxml_xslt_stylesheet($fichierXSL)) {
  exit("Erreur lors de l'analyse du document");
}

$html = $xsl->process($xml);
echo $html->dump_mem();
?>

QQ’un a une idée?

Merci

Comme ça, sans trop me mettre dedans (désolé, je suis vraiment débordé…), je te conseillerais d’essayer de remplacer ta dernière ligne {echo $html->dump_mem();} par

$xsl->result_dump_mem($html?#41;;

Edit : regarde aussi si ton éditeur est en UTF-8, puisque tu lui dis que ta chaine est dans cet encodage.

Non, vu que la chaine ne contient que des caractères ASCII, c’est pas lié à l’utf.