Page 1 sur 1

boucle domXml

Posté : 02 juin 2007, 16:31
par Invité
Bonjour,

j'ai un document xml qui se présente comme suit
<racine>
<element>...</element>
<element>...</element>
<element>...</element>
<pages> 
<page>pages/page01.jpg</page> 
<page>pages/page02.jpg</page> 
<page>pages/page03.jpg</page> 
<page>pages/page04.jpg</page> 
<page>pages/page05.jpg</page> 
</pages> 
</racine>
J'essaye de modifier tous les éléments <page>...</page> en remplaçant leur contenu par 'test', avec domXml
ça me donne ceci :
//Chargement fichier ave DOMxml
$doc = new DomDocument(); 
$doc->load('../openbook/mosaddphp/private/config.xml');
$pages = $doc->getElementsByTagName('pages');
	
foreach ($pages as $page)
{
   $old = $page->nodeName; 
   $new = $doc->createTextNode('test');
   $page->replaceChild($new , $old); 
   echo $page->nodeValue;
}
Je reçois l'erreur suivante
Warning: DOMNode::replaceChild() expects parameter 2 to be DOMNode, string given in C:\wamp\www\openbook\mosaddphp\private\importImg.php on line 20
Il me dit que $old = $page->nodeName; est une chaine de caractère, pas un noeud.
Ma question comment remplacer le contenu de chaque élément <page>....</page>?

Posté : 02 juin 2007, 17:10
par Invité
ceci me permet de remplacer le contenu du 1er élément <page>..</page>
foreach ($pages as $page)
{ 

   $old = $page->firstChild; 
   $new = $doc->createTextNode('test');
   $page->replaceChild($new , $old); 
   echo $page->nodeValue;
 
}
Mais je n'arrive pas à modifier les autres

Posté : 03 juin 2007, 13:01
par Invité
ou peut être y a til une méthode plus simple pour modifier un document xml?