2013-07-23 146 views
0

這是我的HTML的一部分:獲取HTML從文件中使用簡單的HTML DOM

<div class="info"> 
    <ul class="links"> 
    </ul> 
    <h1>TEXT #1</h1> 
    <ul class="names"> 
     <li> 
     <img src="images/flags/flag_1.gif" alt="USA" /> 
     <h3>TEXT #2</h3> 
     </li> 
     <li> 
     <img src="images/flags/flag_34.gif" alt="CZ název" /> 
     <h3>TEXT #3</h3> 
     </li> 
    </ul> 

我使用簡單的HTML DOM praser,我要儘量拿到3文本(TEXT#1,TEXT#2,TEXT #3)

我的PHP代碼嘗試:

$html = file_get_html('file.txt'); 
$ret = $html->find('ul[class="links"]'); //nazov filmu 


foreach ($ret as $translate) { 
    $translate = $translate->innertext; 
    } 
    echo "$translate"; 

理想的結果應該是:

echo "$translate[0]"; //TEXT #1 
echo "$translate[1]"; //TEXT #2 
echo "$translate[2]"; //TEXT #3 
+0

你爲什麼不這樣做在JavaScript? –

+0

我已經在PHP中完成了90%,只是更多的像這樣失蹤 – Andurit

回答

0

我認爲「file.txt」是指上面的一段HTML ...

在我看來你喜歡你的find('ul [class =「links」]')不包含任何東西(按照示例代碼)。你是否試圖選擇所有類型的標籤?

+0

你是對的,我的第一篇文章中的HTML代碼是file.txt的一部分。我只是不知道如何從HTML中選擇這樣的東西。所以是啊,我的PHP代碼可以全部錯誤 – Andurit

0

PHP

$titles = array(); 
$html = file_get_html('file.txt'); 
$html = $html->ownerDocument; 
$lists = $html->getElementsByTagName("ul") 
foreach($lists as $list): 
    if($list->getAttribute('class') == "links"): 
     $list = $list->ownerDocument; 
     $h3 = $list->getElementsByTagName('h3'); 

     foreach($h3 as $title) 
      $titles->push($title); 
    endif; 
endforeach; 

echo $titles[0]; 
+0

感謝您的答案隊友,但它給我這個錯誤:解析錯誤:語法錯誤,意外的'數組'(T_ARRAY) – Andurit

+0

@Andurit嘗試使用此代碼(我編輯了我的答案)。自從我編寫了一些PHP內容以來,這已經有一段時間了,所以我的數組初始化部分是錯誤的。現在已經修復了。 –

+0

嘿,它仍然拋出一些錯誤: 注意:試圖獲取非對象的屬性 致命錯誤:調用一個非對象的成員函數getElementsByTagName() – Andurit