One easy way to do that is to paginate with LimitIterator
over a SimpleXMLIterator
specifying the page number and the size of each page:
$url = 'http://news.yahoo.com/rss/world/';
$rss = simplexml_load_file($url, 'SimpleXMLIterator');
$page = 2;
$size = 10;
$items = new LimitIterator($rss->channel->item, ($page - 1) * $size, $size);
printf("Page #%d:\n", $page);
foreach ($items as $item) {
echo ' * ', $item->title, "\n";
}
Exemplary page 2 from right now:
Page #2:
* Air raids on rebel areas near Damascus, Kurds advance: NGO
* Author Yasmina Khadra to run for Algerian president
* Fugitive eco-activist says granted Australian visa
* Egypt family feud kills 10: police
* French say 2 journalists killed in north Mali
* Burnley held as Leicester close on leaders
* Dundee United denied famous win as Celtic snatch point
* Fire breaks out in Saudi prison, riots and gunshots reported
* RFI: 2 French journalists kidnapped in north Mali
* Los Angeles airport partly closed as shooting probe continues
This is plain-text only output, but I assume you can see in the example how it works and that it is easy to adopt for HTML output.