我正在尝试使用DOMDocument
函数getElementsByTagName()
,但它会一直返回一个空对象。我正在使用以下代码:
// Create some HTML
$output = '
<html>
<body>
<a href="foo">Bar</a>
</body>
</html>';
// Load the HTML
$dom = new DOMDocument;
$dom->loadHTML($output);
// Find all links (a tags)
$links = $dom->getElementsByTagName('a');
var_dump($links); // object(DOMNodeList)#31 (0) { } - empty object
我错过了什么?查看文档,看起来我正在使用该函数。
答案 0 :(得分:6)
var_dump
只是说你有DOMNodeList
个对象。遍历列表,你会看到它在那里:
foreach( $links as $a) {
echo $a->nodeName . ' ' . $a->nodeValue;
}
这将输出:
a Bar
因为它是<a>
标记,其内容为Bar
。
答案 1 :(得分:0)
不确定您对var_dump
的期望是什么,但该元素包含在该节点列表中,如您所见:
var_dump($links->item(0));
//object(DOMElement)#3 (0) {}
var_dump($links->item(0)->getAttribute("href"));
//string(3) "foo"