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 に答える