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

これを行うための簡単な方法はphpdomにはありません。すべての要素を調べて、それらのクラス属性に必要なクラス名が含まれているかどうかを確認する必要があります...

$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 に答える