1

我正在尝试使用该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

我错过了什么?查看文档,看起来我正在正确使用该功能。

4

2 回答 2

6

var_dump只是说你有一个DOMNodeList对象。遍历列表,您会看到它在那里:

foreach( $links as $a) {
     echo $a->nodeName . ' ' . $a->nodeValue;
}

这将输出:

a Bar 

因为它是一个<a>标签,它的内容是Bar.

于 2012-07-18T13:31:11.650 回答
0

不确定您对 的期望是什么var_dump,但该元素包含在该节点列表中,如您所见:

var_dump($links->item(0));
//object(DOMElement)#3 (0) {}
var_dump($links->item(0)->getAttribute("href"));
//string(3) "foo"
于 2012-07-18T13:31:03.867 回答