DOMDocument getElementsByTagName不起作用

时间:2012-07-18 13:28:35

标签: php xml-parsing domdocument

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

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

2 个答案:

答案 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"