modification xml par dom - PHP - Programmation
Marsh Posté le 06-06-2007 à 10:59:37
getElementsByTagName te retourne une collection de noeud ( un tableau). Il faut donc prendre un des elements pour pouvoir faire l'appendChild dessus ( vraisemblablement firstChild).
Pour ton probleme sur free, il me semble que par défaut les .php utilisent PHP4 chez free. Et il s'avère que l'extension DOM n'est pas activé sur php4 chez eux( uniquement domxml). Il faut que tu renommes sur fichier en .php5
Marsh Posté le 06-06-2007 à 12:05:26
Merci bien, j'ai réussi à résoudre mes problèmes.
Pour Free, il suffit de renommer le fichier en .php5 et nickel.
Pour le fichier php, j'ai changé comme ceci :
$images = $dom->getElementsByTagName("images" )->item(0);
il suffisait juste de rajouter le item() après. Par contre en ajoutant firstChild, ca ne génère pas d'erreur mais ca ne modifie pas le fichier xml.
merci encore pour ton aide
Marsh Posté le 06-06-2007 à 10:02:36
Bonjour,
j'aimerais pouvoir modifier un fichier xml avec dom, mais impossible, j'ai eu beau suivre des tutorials sur internet, il me retourne toujours une erreur et je n'arrive pas à comprendre.
voici mon xml :
<?xml version='1.0' encoding='iso-8859-1' ?>
<images>
<image>image1</image>
<image>image2</image>
</images>
et voici mon fichier php :
<?php
$dom = new DOMDocument;
$dom->load('images.xml');
$newImage = $dom->createElement("image" );
$imageName = $dom->createTextNode("image3" );
$newImage->appendChild($imageName);
$images = $dom->getElementsByTagName("images" );
$images->appendChild($newImage);
$dom->save('images.xml');
?>
Avec easyPHP 2, il me retourne :
Fatal error: Call to undefined method DOMNodeList::appendChild() in C:\Documents and Settings\Utilisateur\Mes documents\TestsPHP\modify_xml.php on line 8
Sur une page perso Free :
Warning: domdocument() expects at least 1 parameter, 0 given in /mnt/108/sdb/a/a/overlex/modify_xml.php on line 2
Fatal error: Call to undefined function: load() in /mnt/108/sdb/a/a/overlex/modify_xml.php on line 3
Merci de bien vouloir m'aider car là je ne sais vraiment plus comment faire.