2015-05-26 29 views
1

我試圖獲取裏面的各種元素,如下所示。我非常新的這個,所以我可以不使用最有效的方法,但是這是我已經開始......如何通過簡單的Html Dom解析HTML中多個元素

示例代碼的簡化....

<li id='entry_0' title='09879879'> 
    <div ....> 
     <h2> The title text would go here </h2> 
     <span class='entrySize' ....> 20oz </span> 
     <span class='entryPrice' ....> $32.09 </span> 
     <span class='anotherEntry' ....> More Data I need To Grab </span> 
     ....... 
    </div> 
</li> 

<li> .... With same structure as above .... 100's of entries like this </li> 

我知道如何把個人部分分開,但無法抓住如何將它分組在html的一部分。

$filename = "directory/file.html"; 
$html = file_get_html($filename); 

for($i=0; $i<=count(entryNumber);$i++) 
{ 
    $li_id = "entry_".$i; 
    foreach($html->find('li[id='.$li_id.']') as $li) {   
     echo $li->innertext; 
    } 
} 

因此,這會將訂單商品代碼中的內容與ID號作爲唯一屬性一起獲得。我想通過迭代訂單項標籤來獲取h2文本,entrySize,entryPrice等。我不明白的是,只要我擁有訂單項標籤內容,我如何解析該訂單項內部的標籤和屬性。有可能是整個HTML文檔的其他部分的標籤具有相同的id,這些文檔在整個文檔中都是這樣,所以我將它分解爲多個部分,而不是每次都要分析每個部分。

我也想拉標題屬性標題標籤爲李標籤。

我希望我的解釋有意義。

+0

我正在測試一些代碼並加入..... echo $ li-> title 我能夠從中獲得標題值。仍在處理訂單項代碼中的其他元素/標籤。 – Timothy

回答

0

您應該使用DOM解析器。 PHP捆綁了一個,還有很多其他的可以使用。

http://php.net/dom

PHP Simple HTML DOM Parser

<?php 
$html = file_get_content($page); 
$doc = new DOMDocument(); 
$doc->loadHTML($html); 

// now find what you need 
$items = $dom->getElementsByTagName('li'); 
foreach ($items as $item) { 
    $id = $item->getAttribute('id'); 
    if (strpos($id, 'item_') !== false) { 
     // found matchin li, grab its children 
    } 
} 

以此爲基準,我們可以不寫所有的代碼爲您服務。看看PHP文檔來完成這個:)從我到目前爲止,你需要按照文檔,使它抓住孩子的價值觀,並處理它們。

+0

感謝您的信息。很有幫助。 – Timothy

相關問題