找到&在HTML文档中打印第一个div

时间:2013-12-15 21:52:36

标签: php html dom domdocument domxpath

我试图找到远程页面中的第一个div元素,但有困难。以下是我到目前为止的情况:

$url = "http://feed2all.eu/watch/193916/1/watch-skysports.html";
$html = file_get_contents($url);
$doc = new DOMDocument(); // create DOMDocument
libxml_use_internal_errors(true);

$doc->validateOnParse = true;
$doc->preserveWhiteSpace = false;
$doc->loadHTML($html); // load HTML you can add $html

$xpath = new DOMXpath($doc);
$nodes = $xpath->query( "//div");
foreach( $nodes as $node) {
    echo $node;
}

我也尝试过使用:

$divs = $doc->getElementsByTagName('div');
foreach ($divs as $div) {
    echo $div;
}

编辑:如何回显得到div的内部html

             $xpath = new DOMXpath($doc);
             $div = $xpath->query("//div[1]")->item(0);
             function get_inner_html( $div ) {
             $innerHTML= '';
             $children = $div->childNodes;
             foreach ($children as $child) {
             $innerHTML .= $child->ownerDocument->saveXML( $child );
              }
             echo $innerHTML;
              }

它给出空白页

1 个答案:

答案 0 :(得分:1)

如果你想要第一个div使用:

$div = $xpath->query("//div[1]")->item(0);

此外,您无法使用echo打印DOMElement。您可以打印它的值:

echo $div->nodeValue;

或它的属性:

echo $div->getAttribute('foo');

在评论中,您要求获取innerHTML的{​​{1}}。这里有一个示例如何获取div site的第一个标记的HTML:

this