0

我有以下代码:

$url = file_get_contents('url');
$webpage = new DOMDocument();
$webpage->loadHTML($url);
$tables = $webpage->getElementsByTagName('table');
echo $tables->item(3)->nodeValue;

当我回显该方法从网页获得的第三个表时,我可以看到没有 html 标签,但我需要它们,因为<tr>标签包含我在获取元素后要处理的信息。

我一直在寻找解决方案,也许是 NodeList 类的一些属性,来自 php.net,但我什么都没有。

4

2 回答 2

0

这是一个可用于获取节点的 html 内容的函数:

function innerHTML(DOMNode $node)
{
    $doc = new DOMDocument();
    foreach ($node->childNodes as $child) {
        $doc->appendChild($doc->importNode($child, true));
    }

    return $doc->saveHTML();
}
于 2013-08-29T14:51:52.117 回答
0

DOMNode DOMNodelist::item ( int $index )需要索引作为参数。索引从 0 开始。所以第三个应该是索引 2。

例如,您可以使用此PHP Manual User Note递归获取内容。

于 2013-08-29T14:55:22.460 回答