是否有可能使用PHP中的DOM从html代码中提取完整准确的图像标记?

时间:2016-04-19 11:12:18

标签: php html dom

我试图使用DOM从html代码中获取完整准确的img标记:

$content=new DOMDocument();
$content->loadHTML($htmlcontent);
$imgTags=$content->getElementsByTagName('img');
foreach($imgTags as $tag) {
echo $content->saveXML($tag); }

如果我有原始<img src="img">,则结果为<img src="img"/>。但我需要与原始相对应的确切值。

有可能 - 在没有正则表达式或第三方库(简单HTML DOM)的情况下使用DOM获取精确的img标记?

1 个答案:

答案 0 :(得分:0)

没有。这是不可能的。

但是,如果使用<img>符合特定条件,则可以实现从HTML文档中删除DOMDocument元素的目标。下面是一些示例代码,用于删除包含class属性“removeme”的图像。

$htmlcontent =
    '<!DOCTYPE html><html><head><title>Example</title></head><body>'
    . '<img src="1"><img src="2" class="removeme"><img src="3"><img class="removeme" src="4">'
    . '</body></html>';

$content=new DOMDocument();
$content->loadHTML($htmlcontent);

foreach ($content->getElementsByTagName('img') as $image) {
    if ($image->getAttribute("class") == "removeme") {
        $image->parentNode->removeChild($image);
    }
}
echo $content->saveHTML();

输出:

<!DOCTYPE html> <html><head><title>Example</title></head><body><img src="1"><img src="3"></body></html>