Page 1 sur 1

Suppression de noeud

Posté : 26 juil. 2007, 10:10
par béka
Bonjour tout le monde, je voudrais comprendre ce qui ne va pas dans ce code pour supprimer un noeud de mon fichier xml
<?
  $matrixFile = '../'.$cfg['ressources_root'].'matrix.xml';
  $domMatrix = new DOMDocument('1.0','UTF-8');
  $domMatrix->load($matrixFile);
  $root = $domMatrix->documentElement; 
  $xpMatrix = new DOMXPath($domMatrix);
  //echo $id; ici id=9
  $linkDelete = $xpMatrix->query('//link/item[@id="'.$id.'"]')->item(0);
  $del = $root->removeChild($linkDelete);
  $domMatrix->save($matrixFile);
?>
et voici le fichier xml correspondant

Code : Tout sélectionner

<root> <link id="9"> <criteria idcat="1" idcrit="1"/> <item id="9"/> </link> </root>

EDIT :

J'ai trouvé la solution, en fait il fallait mettre dans ma requête :
<? $linkDelete = $xpMatrix->query('//link/item[@id="'.$id.'"]/..')->item(0); ?>
Dans ce cas, pourquoi ne peut-on pas utiliser
<? $linkDelete = $xpMatrix->query('//link/parent::link[@id="'.$id.'"]/..')->item(0); ?>
?