我需要阅读XML
文件并删除名为<images>
的所有元素以及所有关联的子元素。我发现了类似的旧问题,但没有奏效。我究竟做错了什么?有更好的方法吗?如何删除XML元素和所有的孩子?
XML:
<?xml version='1.0' encoding='UTF-8'?>
<settings>
<background_color>#000000</background_color>
<show_context_menu>yes</show_context_menu>
<image>
<thumb_path>210x245.png</thumb_path>
<big_image_path>620x930.png</big_image_path>
</image>
<image>
<thumb_path>200x295.png</thumb_path>
<big_image_path>643x950.png</big_image_path>
</image>
</settings>
PHP:
$dom = new DOMDocument();
$dom->load('test.xml');
$thedocument = $dom->documentElement;
$elements = $thedocument->getElementsByTagName('image');
foreach ($elements as $node) {
$node->parentNode->removeChild($node);
}
$save = $dom->saveXML();
file_put_contents('test.xml', $save)
+1:使用SimpleXML处理特定情况的好方法。我以为你在寻找DOMDocument。 – hakre 2013-04-07 09:37:00
@hakre我正在使用两种解决方案,SimpleXML的确很简单:) – dnelson 2013-04-08 17:06:07