如何使用php的HTMLDOMDocument类删除元素及其子元素

时间:2014-12-02 22:05:29

标签: php dom domdocument

我对php的HTMLDOMDocument类比较新。

我正在做这样的事情:

$html = getHTML();

$htmlDOM = new DOMDocument('5.0', 'utf-8');
libxml_use_internal_errors(true);
$htmlDOM->loadHTML(mb_convert_encoding(($html), 'HTML-ENTITIES', 'UTF-8'));
libxml_clear_errors();

不幸的是,检索到的所有元素都有类,而不是ID。通过Id或标签检索元素非常简单......

但是,如何使用特定类检索内部的一些元素(例如:post-hover),然后从$htmlDOM中删除它们?

1 个答案:

答案 0 :(得分:1)

不知道他们为什么还没有添加getElementsByClassName。但您可以使用xpath来查找元素(取自here):

$finder = new DomXPath($dom);
$classname = "my-class";
$nodes = $finder->query("//*[contains(@class, '$classname')]");

然后简单地循环并删除:

foreach($nodes as $node){
    $node->parentNode->removeChild($node);
}