从XML节点PHP DOM中删除所有子项

时间:2010-08-30 19:53:03

标签: php dom

我想使用PHP DOM从XML节点中删除所有子节点,之间有什么区别:

A)

while ($parentNode->hasChildNodes()){
   $parentNode->removeChild($parentNode->childNodes->item(0));
 }

B)

$node->nodeValue = "";

我更喜欢第二个,似乎我得到了相同的结果,但我不确定。

谢谢, 卡洛斯

2 个答案:

答案 0 :(得分:24)

稍微紧张:

  while ($parentNode->hasChildNodes()) {
    $parentNode->removeChild($parentNode->firstChild);
  }

答案 1 :(得分:5)

removeChild()是更“正确”的做事方式。虽然您可以将该节点的内容设置为"",这将获得所需的效果,但调用removeChild()对于正在发生的事情更为明显。但是,我的假设是,nodeValue()在一个微小的层面上效率稍高。