user3677331
user3677331

Reputation: 698

php dom not able to find any nodes

I'm trying to get the href of all anchor(a) tags using this code

$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');
  }
}

where the returned JSON is like here but it doesn't echo anything. The HTML does have a tags but the foreach is never run. What am I doing wrong?

Upvotes: 1

Views: 59

Answers (1)

Kevin
Kevin

Reputation: 41903

Just remove that htmlentities(). It will work just fine.

$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/>';
}

Upvotes: 1

Related Questions