DOMElement getElementsByTagName () не работает

Почему я не получаю ничего, когда я отражаю результаты в этом коде:

$result1 = '<HTML><HEAD><TITLE>Moved Temporarily</TITLE></HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"><H1>Moved Temporarily</H1>The document has moved <A HREF="https://accounts.google.com/ServiceLogin?service=lso&amp;">here</A>.</BODY></HTML>';
$dom = new DOMDocument;
$dom->loadHTML($result1);
$items = $dom->getElementsByTagName('HEAD');
echo $items->item(0); // error

2

Решение

Вы должны использовать имена тегов в нижнем регистре:

$result1 = '<HTML><HEAD><TITLE>Moved Temporarily</TITLE></HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"><H1>Moved Temporarily</H1>The document has moved <A HREF="https://accounts.google.com/ServiceLogin?service=lso&amp;">here</A>.</BODY></HTML>';
$dom = new DOMDocument;
$dom->loadHTML($result1);
$items = $dom->getElementsByTagName('head');
^^^

Sidenote: Всегда включайте отчеты об ошибках для получения полезной информации:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Вы не можете откликнуться напрямую, так как это возвращает классы DOM.

Чтобы зациклить над детьми:

echo '<pre>';
foreach($items->item(0)->childNodes as $child) {
print_r($child); // most likely this will show you the child `<title>` node
}
3

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

Других решений пока нет …

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