Получить первые 9 элементов из RSS-канала Google XML в Stack Overflow

В настоящее время я работаю с RSS-каналами Google. Я получил этот ответ XML.

<rss version="2.0">
<channel>
<generator>NFE/1.0</generator>
<title>blockchain - Google News</title>
<link>...</link>
<language>en</language>
<webMaster>[email protected]</webMaster>
<copyright>&copy;2017 Google</copyright>
<pubDate>Fri, 17 Nov 2017 09:41:26 GMT</pubDate>
<lastBuildDate>Fri, 17 Nov 2017 09:41:26 GMT</lastBuildDate>
<image>...</image>
<description>Google News</description>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
</channel>
</rss>

Я использую это foreach() перебрать все элементы:

$rss = simplexml_load_file('https://news.google.com/news/rss/headlines/section/q/blockchain/blockchain?ned=us&hl=en&gl=US');

foreach ($rss->channel->item as $item) {
echo $item->title."<br/>";
echo $item->link."<br/>";
echo $item->pubDate."<br/>";
}

Но этот foreach возвращает мне все предметы.

Как я могу получить только первые 9 элементов из этого XML?

1

Решение

Легко и быстро исправить: —

$i = 0;
foreach ($rss->channel->item as $item) {
if($i<9){
echo $item->title."<br/>";
echo $item->link."<br/>";
echo $item->pubDate."<br/>";
}
$i++;
}

Очень эффективное решение:

$array = array_slice($rss->channel->item,0,9);

foreach ($array as $item) {
echo $item->title."<br/>";
echo $item->link."<br/>";
echo $item->pubDate."<br/>";
}

Ссылка:- Руководство по PHP: array_slice

1

Другие решения

Ну, я нашел ответ:

   $i = 0;

foreach ($rss->channel->item as $item) {
$i++;

echo $item->title."<br/>";
echo $item->link."<br/>";
echo $item->pubDate."<br/>";if($i == 10) break;
}
2

По вопросам рекламы [email protected]