简单的HTML Dom:如何删除元素?
2022-08-30 12:36:11
我想使用Simple HTML DOM来删除文章中的所有图像,这样我就可以很容易地为新闻自动收报机创建一小段文本,但我还没有弄清楚如何删除它的元素。
基本上我会做的
- 以 HTML 字符串形式获取内容
- 从内容中删除所有图像标记
- 将内容限制为 x 个字
- 输出。
有什么帮助吗?
我想使用Simple HTML DOM来删除文章中的所有图像,这样我就可以很容易地为新闻自动收报机创建一小段文本,但我还没有弄清楚如何删除它的元素。
基本上我会做的
有什么帮助吗?
没有用于删除元素的专用方法。你只需找到所有的img元素,然后做
$e->outertext = '';
当您仅删除外部文本时,您将删除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类中,你就好了。