我在我的项目中使用PHP Simple HTML DOM Parser
库,但我无法弄清楚如何使方法有效。
首先我将字符串转换为DOM对象:
$html = str_get_html($rarr[$i]);
$rarr
变量是一个html字符串元素数组。我想删除他们的class
和title
属性,因此我使用以下代码:
$html = $html->removeAttribute('class');
$html = $html->removeAttribute('title');
但是我收到以下错误:
致命错误:在 /scripts/defios.php 的 198
中调用未定义的方法simple_html_dom :: removeAttribute() >
根据Documentation,str_get_html()
从字符串创建DOM对象。我认为removeAttribute()
方法不是DOM方法,而是元素方法,这就是我收到错误的原因。所以我需要以某种方式将DOM转换为Element。我认为find()
方法可以完成这项工作,但问题在于我无法使用它,因为数组中的html元素是随机的(有些是div,跨度而且它们不具备一个普通的类或id),所以这个方法并没有真正帮助我。 DOM本身就是元素,所以我不想在DOM中选择一些内容,而是将整个DOM转换为元素。
我需要做的就是删除该课程和标题,以便获得任何帮助。
答案 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');
}