Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当存在多个子节点时,如何使用DOMDocument删除特定的xml节点?_Php_Xml_Domdocument - Fatal编程技术网

Php 当存在多个子节点时,如何使用DOMDocument删除特定的xml节点?

Php 当存在多个子节点时,如何使用DOMDocument删除特定的xml节点?,php,xml,domdocument,Php,Xml,Domdocument,使用PHP的DOMDocument删除节点的标准方法是: $dom = dom_import_simplexml($node); $dom->parentNode->removeChild($dom); 当存在多个子节点时会出现问题,因为此方法只会删除第一个子节点。例如,Google Contacts API生成的XML基本上如下所示: <phoneNumber> <first number node> <second number n

使用PHP的DOMDocument删除节点的标准方法是:

$dom = dom_import_simplexml($node);
$dom->parentNode->removeChild($dom);
当存在多个子节点时会出现问题,因为此方法只会删除第一个子节点。例如,Google Contacts API生成的XML基本上如下所示:

<phoneNumber>
    <first number node>
    <second number node>
    <etc...>
</phoneNumber>


所以问题是,如何删除堆栈中的特定节点?

由于SimpleXML是面向对象的,只需使用

unset($xml->node)
删除,然后

$xml->saveXML();
保存