1

我想要做的是获取一个带有其类名的元素并将其显示为实际的 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 方法

4

1 回答 1

0

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

$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();
}
于 2012-06-28T17:30:52.460 回答