Bonjour à tous,

J'essaye de supprimer un noeud d'un fichier xml avec DOM XPath.J'ai lu plusieurs documentation sur le sujet mais je ne parviens pas à trouver la bonne syntax sur pour appeler removeChild.

Voici mon bout de code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
$query ='//w:sdt[./w:sdtPr/w:id/@w:val="1536237961"]';
$q_sdt = $xp->query($query);
if($q_sdt->length)
{ 
$sdt = $q_sdt->item(0); //un var_dump ici m'affiche bien le contenu du noeud "sdt" que je veux supprimer
$parent = $sdt->ParentNode; //un var_dump ici me renvoi "NULL"
$deletenode = $parent->removeChild($sdt);//Cette ligne fait planter le script
}
Voici le XML:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<w:body>
  <w:p w14:paraId="43124762" w14:textId="5B041BA7" w:rsidR="0084617E" w:rsidRDefault="004A14AD">...</w:p>
  <w:p w14:paraId="47A5B1E8" w14:textId="3AA6DBC3" w:rsidR="004A14AD" w:rsidRDefault="004A14AD"/>
  <w:sdt>...</w:sdt>
  <w:p w14:paraId="414A3E00" w14:textId="58395965" w:rsidR="00482170" w:rsidRDefault="00482170"/>
  <w:sdt>
    <w:sdtPr>
      <w:alias w:val="Paragraphe 1:"/>
      <w:tag w:val="PAR"/>
      <w:id w:val="1536237961"/>
      <w:placeholder>...</w:placeholder>
    </w:sdtPr>
    <w:sdtContent>...</w:sdtContent>
  </w:sdt>
J'essaye de supprimer la balise <w:sdt> (ainsi que tous ses children) qui contient la balise <w:id w:val="1536237961" />

Merci pour votre aide.

Cdlt,

AG