首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的HTML Dom:如何删除元素?

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

Stack Overflow用户
提问于 2011-11-22 13:20:50
回答 11查看 52.4K关注 0票数 38

我想使用简单的HTML来删除文章中的所有图像,这样我就可以轻松地为新闻播报器创建一个小的文本片段,但是我还没有弄清楚如何用它删除元素。

基本上我会

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

有什么帮助吗?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-11-22 13:29:26

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

代码语言:javascript
复制
$e->outertext = '';
票数 54
EN

Stack Overflow用户

发布于 2012-07-19 07:27:49

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

下面是一个示例函数:

代码语言:javascript
复制
public function removeNode($selector)
{
    foreach ($this->find($selector) as $node)
    {
        $node->outertext = '';
    }

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

将此函数放入simple_html_dom类中,您就可以了。

票数 30
EN

Stack Overflow用户

发布于 2015-01-14 12:57:17

我认为您有一些困难,因为您忘记了保存(将内部DOM树转储回string)。

试试这个:

代码语言:javascript
复制
$html = file_get_html("http://example.com");

foreach($html ->find('img') as $item) {
    $item->outertext = '';
    }

$html->save();

echo $html;
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8227481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档