Bonsoir,

Pour des raisons que je ne parviens pas à trouver, le fil suivant tourne en erreur.

Un extrait de document xml :
<?xml version="1.0" encoding="UTF-8"?>
<candidats>
	<candidat commune="01">
		<div class="numero">01 Xavier Desgain</div>
		<p>
			<img class="portrait" src="images/elections2006/portrait/Xavier_Desgain.jpg" alt="Xavier Desgain"/>
		</p>
		<p/>
		<p/>
		<p>Ingénieur agronome, ancien député wallon et conseiller communal, l’expérience alliée à la compétence.</p>
		<h5>Domicile</h5>
		<p>rue Zénobe Gramme 35<br/>6001 Marcinelle</p>
		<h5>Téléphone</h5>
		<p/>
		<h5>Courriel</h5>
		<p>
			<a class="liste" href="mailto:xavier.desgain@skynet.be">xavier.desgain@skynet.be</a>
		</p>
	</candidat>
</candidats>


Une transformation, très simple :
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:output encoding="UTF-8" indent="yes" method="xml" omit-xml-declaration="yes"/>
	<xsl:param name="candidat">03</xsl:param>
	<xsl:template match="/">
		<xsl:apply-templates select="candidats/candidat[@commune=$candidat]"/>
	</xsl:template>
	<xsl:template match="candidat">
		<xsl:copy-of select="*"/>
	</xsl:template>
</xsl:stylesheet>


Et un peu de code php5, basic :

$id = ($_GET['candidat']);
$xsl = new DomDocument(); 
$xsl->load('../scripts/candidatCommunales2006.xsl'); 
$inputdom = new DomDocument(); 
$inputdom->load('../data/candidats2006.xml'); 
$proc = new XsltProcessor(); 
$xsl = $proc->importStylesheet($xsl); 
$proc->setParameter(null, "candidat", $id); 
$newdom = $proc->transformToDoc($xml); 
print $newdom->saveXML(); 


J'ai testé la transformation : pas de problème.
Le code php5 : je l'ai dans des centaines d'autres pages sans problème.
Emplacement et nom de document : testé.

Test pas à pas : ok, jusqu'a la dernière ligne :

print $newdom->saveXML();


L'erreur de produit là.

Et je ne comprend pas.
Si quelqu'un à une petit solution, je serais très Smiley biggol

Merci !
Modifié par h2o (28 Jul 2006 - 07:55)
Administrateur
Bonjour,

si le code PHP5 fonctionne avec d'autres documents XML, je suppose qu'une erreur y est improbable ... Tu peux peut-être essayer d'ouvrir ton document XML dans un autre éditeur affichant les caractères à la $@# (Scite +File/Encoding/UTF-8 par exemple) ou bien d'en créer une copie à la main en copiant-collant la 1ère ligne puis la 2ème puis le reste en 3 fois ou encore de le simplifier à l'extrême en ne mettant dans les balises que des 'abc' plutôt que des äccênts et en reformant les balises <p/> <p /> ou encore en virant tout retour à la ligne et tout whitespace, etc
Merci pour les suggestions. Je les ai toutes testées avant de retourner voir le code php. Il est correcte. mais entrait en conflit avec une deuxième transformation sur la même page. Une petite modif, et c'est ok.