<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Les forums de JeBulle.net – [PHP5][DOM][BOGUE] DomDocument->formatOutput et DomDocument->load()]]></title>
	<link rel="self" href="https://forums.jebulle.net/feed/atom/topic/586/" />
	<updated>2006-12-21T21:37:46Z</updated>
	<generator>PunBB</generator>
	<id>https://forums.jebulle.net/topic/586/php5dombogue-domdocumentformatoutput-et-domdocumentload/</id>
		<entry>
			<title type="html"><![CDATA[[PHP5][DOM][BOGUE] DomDocument->formatOutput et DomDocument->load()]]></title>
			<link rel="alternate" href="https://forums.jebulle.net/post/6770/#p6770" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[SamRay1024]]></name>
				<uri>https://forums.jebulle.net/user/2/</uri>
			</author>
			<updated>2006-12-21T21:37:46Z</updated>
			<id>https://forums.jebulle.net/post/6770/#p6770</id>
		</entry>
</feed>
