使用DOMDocument通过它的类提取和打印html元素

时间:2012-06-28 17:22:06

标签: php domdocument

我想要做的是获取一个带有类名的元素,并将其显示为实际的html元素,而不是节点或其内部数据

这是我的代码

$html = file_get_contents("www.site.com");
$dom = new DOMDocument('1.0');
$dom->loadHTML($html);
$element = $dom->getElementById('myid');
$string = $element->C14N();

这里是我如何使用ID,但我想现在如果有一种方法使用类显然没有getElementByClass方法

1 个答案:

答案 0 :(得分:0)

在php dom中没有直接的方法来做到这一点。您将必须遍历所有元素并检查其class属性是否包含您需要的类名...

$html = file_get_contents("www.site.com");
$dom = new DOMDocument('1.0');
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('div') as $element) {
    if (strpos($element->getAttribute('class'), 'yourClassNameHere') !== false) {
        $string = $element->C14N();
    }
}

您还可以使用DOMXpath

$xpath = new DOMXpath($doc);
foreach ($xpath->query("*/div[@class='yourClassNameHere']") as $element) {
    $string = $element->C14N();
}