<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Les forums de JeBulle.net – [PHP5][DOM][BOGUE] DomDocument->formatOutput et DomDocument->load()]]></title>
		<link>https://forums.jebulle.net/topic/586/php5dombogue-domdocumentformatoutput-et-domdocumentload/</link>
		<atom:link href="https://forums.jebulle.net/feed/rss/topic/586/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Messages les plus récents de [PHP5][DOM][BOGUE] DomDocument->formatOutput et DomDocument->load().]]></description>
		<lastBuildDate>Thu, 21 Dec 2006 21:37:46 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[[PHP5][DOM][BOGUE] DomDocument->formatOutput et DomDocument->load()]]></title>
			<link>https://forums.jebulle.net/post/6770/#p6770</link>
			<description><![CDATA[<p>Bonsoir,</p><p>Je mets ici une solution que je viens de trouver après une bonne heure de galère. Je suis en train d&#039;écrire une classe qui permet de gérer un fichier Xml. Cette classe hérite de l&#039;objet <strong>DomDocument</strong> ce qui me permet de coupler la classe à un fichier Xml afin de le manipuler.</p><p>Il se trouve que j&#039;ai eu un problème avec l&#039;indentation du fichier Xml. L&#039;objet <strong>DomDocument</strong> possède une propriété qui permet d&#039;indenter automatiquement le fichier final : <strong>formatOutput</strong>. J&#039;initialisais donc cet attribut à <strong>true</strong> dans le constructeur de ma classe. Dans ce même constructeur, je lance la création du fichier Xml s&#039;il n&#039;existe pas et je lui ajoute quelques éléments par défaut. Le fichier généré est indenté correctement.</p><p>Une fois généré, je recharge ce fichier à l&#039;aide de la méthode <strong>DomDocument-&gt;load()</strong> puis je procède à des ajouts de nouveaux éléments. Et c&#039;est là le drame : les nouveaux éléments <strong>ne sont plus indentés</strong> automatiquement !</p><p>Il se trouve que c&#039;est <a href="http://bugs.php.net/bug.php?id=27783">un bogue de PHP5</a> encore non résolu.</p><p><strong>La solution</strong> pour outrepasser ce bogue consiste à <strong>changer la place</strong> de l&#039;initialisation de l&#039;attribut <strong>formatOutput</strong> pour la mettre <strong>après</strong> l&#039;appel à la fonction <strong>DomDocument-&gt;load()</strong> et à initialiser <strong>DomDocument-&gt;preserveWhiteSpace</strong> à <strong>false</strong> avant.</p><p>A bon entendeur, salut !</p>]]></description>
			<author><![CDATA[null@example.com (SamRay1024)]]></author>
			<pubDate>Thu, 21 Dec 2006 21:37:46 +0000</pubDate>
			<guid>https://forums.jebulle.net/post/6770/#p6770</guid>
		</item>
	</channel>
</rss>
