php dom无法找到任何节点

时间:2015-01-03 16:42:39

标签: php html domdocument

我试图使用此代码获取所有anchor(a)标记的href

$obj = json_decode($client->getResponse()->getContent());
$dom = new DOMDocument;
if($dom->loadHTML(htmlentities($obj->data->partial))) {

  foreach ($dom->getElementsByTagName('a') as $node) {
      echo $dom->saveHtml($node), PHP_EOL;
      echo $node->getAttribute('href');
  }
}

返回的JSON与here类似,但它不会回显任何内容。 HTML确实有一个标签,但foreach永远不会运行。我做错了什么?

1 个答案:

答案 0 :(得分:1)

只需删除htmlentities()。它会工作得很好。

$contents = file_get_contents('http://jsonblob.com/api/jsonBlob/54a7ff55e4b0c95108d9dfec');
$obj = json_decode($contents);
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($obj->data->partial);
libxml_clear_errors();
foreach ($dom->getElementsByTagName('a') as $node) {
    echo $dom->saveHTML($node) . '<br/>';
    echo $node->getAttribute('href') . '<br/>';
}