Php Simple Html - 如何将DOM转换为元素

时间:2017-07-11 18:27:00

标签: php dom simple-html-dom

我在我的项目中使用PHP Simple HTML DOM Parser库,但我无法弄清楚如何使方法有效。

首先我将字符串转换为DOM对象:

$html = str_get_html($rarr[$i]);

$rarr变量是一个html字符串元素数组。我想删除他们的classtitle属性,因此我使用以下代码:

$html = $html->removeAttribute('class');
$html = $html->removeAttribute('title');

但是我收到以下错误:

  

致命错误:在 /scripts/defios.php 198

中调用未定义的方法simple_html_dom :: removeAttribute() >

根据Documentationstr_get_html() 从字符串创建DOM对象。我认为removeAttribute()方法不是DOM方法,而是元素方法,这就是我收到错误的原因。所以我需要以某种方式将DOM转换为Element。我认为find()方法可以完成这项工作,但问题在于我无法使用它,因为数组中的html元素是随机的(有些是div,跨度而且它们不具备一个普通的类或id),所以这个方法并没有真正帮助我。 DOM本身就是元素,所以我不想在DOM中选择一些内容,而是将整个DOM转换为元素。

我需要做的就是删除该课程和标题,以便获得任何帮助。

2 个答案:

答案 0 :(得分:2)

我将如何删除这些内容:

foreach($html->find('[class]') as $el) $el->removeAttribute('class');
foreach($html->find('[title]') as $el) $el->removeAttribute('title');

答案 1 :(得分:1)

关键是访问 children 属性:看一下以下示例并调整它就可以了!

    $html = str_get_html($rarr[$i]);
    foreach($html as $e)
    {
        $tag = $e->children[0]; // get the outer most element
        $tag->removeAttribute('class');
        $tag->removeAttribute('title');
    }