Php DOMDocument getElementsByTagName不工作

Php DOMDocument getElementsByTagName不工作,php,xml-parsing,domdocument,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->loa

我试图使用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

我错过了什么?查看文档,我似乎正确使用了该函数。

不确定您希望从var_转储中得到什么,但您可以看到该元素包含在该节点列表中:

var_dump($links->item(0));
//object(DOMElement)#3 (0) {}
var_dump($links->item(0)->getAttribute("href"));
//string(3) "foo"

不确定您希望从var_转储中得到什么,但您可以看到该元素包含在该节点列表中:

var_dump($links->item(0));
//object(DOMElement)#3 (0) {}
var_dump($links->item(0)->getAttribute("href"));
//string(3) "foo"
var_dump只是说您有一个DOMNodeList对象。遍历列表,您将看到它就在那里:

foreach( $links as $a) {
     echo $a->nodeName . ' ' . $a->nodeValue;
}
这将产生:

a Bar 
因为它是一个标记,并且它的内容是Bar。

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

foreach( $links as $a) {
     echo $a->nodeName . ' ' . $a->nodeValue;
}
这将产生:

a Bar 

因为它是一个标记,其内容是Bar。

$dom实际上是您的HTML文档吗?您确定“错误”发生在getElementsByTagName,而不是之前?$dom实际上是您的HTML文档?您确定“错误”发生在getElementsByTagName而不是之前?