php - 如何使用 DOMDocument 删除 body 元素的所有子元素?

标签 php domdocument

我正在尝试使用 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));
}

这似乎有点倒退,但它应该可以满足您的需求...

关于php - 如何使用 DOMDocument 删除 body 元素的所有子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952585/

相关文章:

php - 如何使用 PHP 将图像发送到 deviantsart Rest API

php - mysql数据库备份类-帮我添加PORT功能

java - 从mysql数据库解析数据时出错

PHP 简单 DOMDocument 抓取排除 td 类

php - 使用 DOMDocument::loadHTML 和 getElementsByTagName 按标签名称获取 DOM 元素

PHP - 删除 <script> 中的所有内容和 HTML 字符串的 CDATA

javascript - 使用 Ajax 显示 PHP 成功和失败消息

javascript - 语言推荐 : Easiest approach for displaying csv data in a graph on the intranet (not internet)

java - 从字符串创建 XML

php - 如何提高迭代 DOMDocument 的性能?