Search code examples
phpdomsimple-html-dom

Php Simple Html - How to convert the DOM to an Element


I'm using PHP Simple HTML DOM Parser library in my project, but I can't figure out how to make a method working.

First I convert a string into a DOM object:

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

the $rarr variable is an array of html string elements. I want to remove their class and title attributes, so I use the following code:

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

but I get the following error:

Fatal error: Call to undefined method simple_html_dom::removeAttribute() in /scripts/defios.php on line 198

According to Documentation, the str_get_html() Creates a DOM object from a string. and I think the removeAttribute() method is not a DOM method but an Element method and that's why I get the error. So I need to convert somehow the DOM to Element. I think the find() method would do the job, but the problem is that I can't use it because the html elements in the array are randomly (some are divs, spans and they don't have a common class or id), so the method doesn't really help me. More the DOM itself is the element so I do not want to select something inside the DOM but to convert the entire DOM to an Element.

All I need to do is to remove that class and title, so any help would be appreciated.


Solution

  • Here's how I would remove those:

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