0
J'ai un fichier xmlSuppression d'un nœud à partir du fichier xml
<?xml version="1.0"?>
<category>
<name>SWEATERS</name>
<name>WATCHES</name>
<name>PANTS</name>
<name>test</name>
<name>1</name>
</category>
Comment puis-je supprimer le nœud <name>test</name>
en utilisant XPath, XQuery et php. J'ai utilisé ce code
$name='test;
$xmlfile="config/shop_categories.xml";
$xml = simplexml_load_file($xmlfile);
$target = $xml->xpath('/category[name="'.trim($name).'"]');
print_r($target[0]);
if($target == false)
return;
$domRef = dom_import_simplexml($target[0]); //Select position 0 in XPath array
$domRef->parentNode->removeChild($domRef);
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
$dom->save($xmlfile);
Mais cela ne fonctionne pas.
Le principal problème est que votre requête XPath retourne le nœud 'category', plutôt que' name' comme vous le souhaitez. La réponse de Gordon ne mentionne pas cela (au moment de la rédaction) mais corrige le problème. – salathe
@salathe droite, en fait je n'ai pas fait attention à ce détail parce que simplexml à dom mishmash n'avait aucun sens pour moi de toute façon. – Gordon
@Gordon, pas de soucis. Maintenant, le PO a une réponse * et * une solution. :) – salathe