我正在使用SimpleXML来读取包含我网站新闻和事件的XML文件。我正在使用foreach来遍历我预定义的xml标签。但是,在我的网站上,我只需要提供三个新闻和事件,这些新闻和事件是我的xml根源的孩子。
<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>
我正在使用来自我的php文件的foreach循环
foreach($xml->newsevent as $newsevent)
{
echo "$newsevent->date";
echo "$newsevent->description";
}
XML文件将被视为新闻和事件的数据库,显然会有很多记录。我怎么才能显示特定数量的新事件?
答案 0 :(得分: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
类。