PHP/XML/DOM fichier .xml vide avec save()

Fermé
doudoupe Messages postés 85 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 7 mars 2012 - 29 janv. 2010 à 03:39
doudoupe Messages postés 85 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 7 mars 2012 - 29 janv. 2010 à 04:00
Bonjour,
J'ai un code tout simple, tout fonctionne bien (vérification avec des "echo") mais lorsque je souhaite sauvegarder mon fichier xml édité, cela fonctionne, mais ce fichier est vide.
Je vous laisse regarder mon code :

fichier wishlist.xml : (je souhaite y ajouter un "kid" (cloné) avec un attribut "id" égal à 3. )

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="wishlist.xsl" type="text/xsl"?>
<wishlist>
	<kid id="1">
		<firstname age="7">James</firstname>
		<list>
			<gift id="7" price="129.9">
				<name>Nintendo DS Lite</name>
				<picture>xx.jpg</picture>
			</gift>
			<gift id="8" price="39">
				<name>Optimus Prime</name>
				<picture>xx.jpg</picture>
			</gift>
			<gift id="9" price="77.45">
				<name>Remote control helicopter</name>
				<picture>xx.jpg</picture>
			</gift>
		</list>
	</kid>
	
	<kid id="2">
		<firstname age="6">Anna</firstname>
		<list>
			<gift id="1" price="39.99">
				<name>Barbie 2009 Holiday Doll</name>
				<picture>xx.jpg</picture>
			</gift>
			<gift id="5" price="35">
				<name>Lion King Animated Lamp</name>
				<picture>xx.jpg</picture>
			</gift>
			<gift id="7" price="129.9">
				<name>Nintendo DS Lite</name>
				<picture>xx.jpg</picture>
			</gift>
		</list>
	</kid>
</wishlist>



Et voilà mon code php :

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<title>Children Wishlist</title>
</head>

<body>
<?php 
error_reporting(E_ALL);

//on crée une instance de la classe DomDocument sur laquelle on va travailler
$obj_dom = new DomDocument('1.0', 'UTF-8');
$obj_dom->formatOutput = true; //permet de garder l'affichage du fichier XML si on y ajoute des éléments.

// On charge le fichier wishlist.xml existant pour le compléter.
$obj_dom->load('wishlist.xml');

//On récupère l'élément racine (wishlist) dont on aura besoin plus tard.
$wishlist = $obj_dom->documentElement;

//On récupère l'élément kid pour le cloner et créer un nouvel élément kid, puis on modifie son attribut id
$kid = $obj_dom->getElementsByTagName("kid")->item(0);
$new_kid = $kid->cloneNode(TRUE);
$new_kid->setAttribute("id", "3");
$new_kid->appendChild($wishlist); //et on "prend en compte" la modification

echo '<br/>'.$kid->nodeName; 
echo '<br/>'.$kid->getAttribute("id");
echo '<br/>'.$new_kid->nodeName;
echo '<br/>'.$new_kid->getAttribute("id");

//On sauvegarde sur le fichier final, que l'on créé au lieu d'éditer le fichier source.
$obj_dom->save('wishlist_end.xml');
?>
</body>
</html>


Mon fichier final :

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="wishlist.xsl" type="text/xsl"?>

Et c'est tout!!

Je ne parviens pas à comprendre d'où ça vient!
Merci de m'éclairer. ;)
A voir également:

1 réponse

doudoupe Messages postés 85 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 7 mars 2012 68
29 janv. 2010 à 04:00
Désolé pour ce up/post, c'est juste pour cocher "Recevoir les réponses par mail". Désolé.
0