Suppression de noeud

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Suppression de noeud

Suppression de noeud

par béka » 26 juil. 2007, 10:10

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); ?>
?