2014-10-13 28 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'); 
            ^^^ 

旁註:總是打開錯誤報告以獲得有用的信息:

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,它不會讓你知道你使用大寫而不是小寫...再次感謝! – Rodniko

+1

@Rodniko確定男人很高興這有幫助 – Ghost

相關問題