最近写PHP程序操作xml文件,在删除节点时遇到了两个问题,在网上找了一下,还是值得注意一下的,在这里记录下来,以待日后查阅。
1、PHP删除xml文件中的节点,不能跨节点删除,只能由父节点删除子节点。
2、循环删除节点时,会出现随机不能删除的问题。解决办法是:把要删除的节点用数组暂存起来,最后再来删除。
Eg: $xml = <<<EOT <Template>
<RCOLL>1</RCOLL>
<RCOLL>2</RCOLL>
<RCOLL>3</RCOLL>
<RCOLL>4</RCOLL>
</TEMPLATE>
EOT;
$objXML = new DOMDocument();
$objXML->loadXML($xml);
$r = $objXML->getElementsByTagName('RColl');
foreach($r as $Node) {
$delete[] = $Node;
}
foreach($delete as $val) {
$val->parentNode->removeChild($val);
}
转载于:https://blog.51cto.com/lovephp/1031301