PHP: Невозможно напечатать первое значение DOMDocument

У меня есть сценарий PHP, который должен прочитать файл HTML, а затем вернуть содержимое первого <h1> тег, который он находит. Я не хочу использовать regex или Simple HTML DOM Parser, просто PHP.

Это мой код до сих пор:

$document = new DOMDocument();
$document->loadHTMLFile($post_url);
$matches = $document->getElementsByTagName('h1');
$first_h1 = $matches->item(0);
echo $first_h1;

Однако, когда я запускаю код, я получаю сообщение об ошибке PHP Catchable fatal error: Object of class DOMElement could not be converted to string

Может кто-нибудь помочь мне с тем, где я иду не так?

Заранее спасибо!

РЕШЕНИЕ: замена последней строки на echo $first_h1->nodeValue; кажется, делает свое дело.

0

Решение

Проблема в том, что $first_h1 это DOMElement объект, а не строка, и у него нет метода для преобразования себя в строку, поэтому вы не можете просто отобразить его. Вы можете, однако, сделать var_dump в теме:

$document = new DOMDocument();
$document->loadHTMLFile($post_url);
$matches = $document->getElementsByTagName('h1');
$first_h1 = $matches->item(0);
var_dump($first_h1);

Если вам нужно получить текстовое содержимое элемента (то есть текст между тегами), используйте свойство nodeValue:

echo $first_h1->nodeValue;
1

Другие решения

$ документ является объектом, который не может быть преобразован в строку (некоторые объекты могут)

Видеть это ссылка на сайт для всех свойств и методов, которые он может предложить, например,

echo $document->tagName;

или же

echo $document->textContent;
0

Вы также можете получить полное значение тега с помощью метода C14N класса DOMNode:

echo $first_h1->C14N();

http://bg2.php.net/manual/en/domnode.c14n.php

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector