简单的 HTML Dom:如何删除元素?

新手上路,请多包涵

我想使用 Simple HTML DOM 删除文章中的所有图像,这样我就可以轻松地为新闻自动收录机创建一小段文本,但我还没有弄清楚如何使用它删除元素。

基本上我会做

  1. 获取内容作为 HTML 字符串
  2. 从内容中删除所有图像标签
  3. 将内容限制为 x 个字
  4. 输出。

有什么帮助吗?

原文由 kasakka 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 317
2 个回答

没有专门的方法来删除元素。您只需找到所有 img 元素,然后执行

$e->outertext = '';

原文由 Gordon 发布,翻译遵循 CC BY-SA 3.0 许可协议

当您只删除外部文本时,您会删除 HTML 内容本身,但如果您对相同的元素执行另一次查找,它将出现在结果中。原因是简单的 HTML DOM 对象仍然具有元素的内部结构,只是没有实际内容。为了真正删除元素,您需要做的只是将 HTML 作为字符串重新加载到同一个变量。这样,将在没有删除内容的情况下重新创建对象,并且将在没有它的情况下构建简单的 HTML DOM 对象。

这是一个示例函数:

 public function removeNode($selector)
{
    foreach ($this->find($selector) as $node)
    {
        $node->outertext = '';
    }

    $this->load($this->save());
}

将此函数放在 simple_html_dom 类中就可以了。

原文由 Dr. Reshef 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏