如何使用DOMDocument删除body元素的所有子元素?
问题描述:
我正在尝试删除所有带有DOMDocument的body
子项。如何使用DOMDocument删除body元素的所有子元素?
$dom = new DomDocument();
$dom->loadHTML($buffer);
$dom->preserveWhiteSpace = FALSE;
$body = $dom->getElementsByTagName('body')->item(0);
$bodyChilden = $body->childNodes; // NULL, so invalid argument for foreach
foreach($bodyChildren as $child) {
$child->parentNode->removeChild($child);
}
echo $dom->saveHTML();
我不知道我在做什么错...请告诉我。
答
嗯,问题是你正在更新$bodyChildren
迭代器(它不是一个数组,它是一个DomNodeList
对象),因为你正在循环它。相反,尝试这样做:
while ($bodyChildren->length > 0) {
$body->removeChild($bodyChildren->item(0));
}
这似乎有点落后,但它应该工作为您的需求...
你的代码中删除所有子元素。谢谢! – alex 2011-02-10 01:54:01