2014-10-13 3 views
2

Почему я ничего не получаю, когда я эхо результатов в этом коде: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 

ответ

3

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

$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 
} 
+0

спасибо :). также, у меня есть error_reporting on, это не дает вам знать, что вы использовали верхний регистр вместо нижнего регистра ... еще раз спасибо! – Rodniko

+1

@ Роднико уверен, что мужчина рад, что это помогло – Ghost

Смежные вопросы