2011-08-07 19 views
0

我正在使用SimpleXML讀取包含我網站新聞和事件的XML文件。我使用foreach來循環我的預定義的xml標記。然而,在我的網站上,我只需要提供三個新聞和事件,這是我xml根目錄的孩子。SimpleXML僅讀取特定數量的孩子

<list> 
<newsevent> 
<date>AUG 7</date> 
<description>news</description> 
</newsevent> 
<newsevent> 
<date>AUG 6</date> 
<description>news/description> 
</newsevent>  
<newsevent> 
<date>AUG 5</date> 
<description>news</description> 
</newsevent> 
</list> 

我使用foreach循環從我的PHP文件

foreach($xml->newsevent as $newsevent) 
{ 
echo "$newsevent->date"; 
echo "$newsevent->description"; 
} 

的XML文件將被視爲數據庫的新聞和事件,顯然會有很多紀錄。我怎麼能只顯示特定數量的新事件?

回答

0

你可以只添加一些計數器變量,跟蹤你的循環次數,並退出循環,當你循環足夠的時間:

$counter = 0; 
foreach($xml->newsevent as $newsevent) 
{ 
    echo "$newsevent->date"; 
    echo "$newsevent->description"; 
    $counter++; 
    if ($counter >= 3) { 
     break; 
    } 
} 


不過,請注意,以SimpleXML(與DOMDocument相同,BTW),整個XML文檔將被解析並加載到內存中,無論您需要從中讀取多少項。

如果你的文件是非常大的,你可能要防止這種情況發生 - 這意味着不使用DOM解析器,但是SAX之一。

在PHP中,您需要查看XMLReader類。

+0

非常感謝 – user874737