PHP 简单xml 检索 xml 中的前 n 条记录

PHP simplexml retrieve first n records in xml

我刚开始使用简单xml,我有以下语句显示 xml 中的所有记录:

$xml=simplexml_load_file("data.xml") or die("Error: Cannot create object");
foreach($xml->children() as $rec) { 
    echo $rec->dist . "<br />";
}

出于分页目的,我将如何从 xml 中检索一系列记录,例如仅前 10 条记录 (0-9)?

提前谢谢!

您可以尝试这样的操作:

$children = $xml->children() ;
$num = count($children) ;
$start = 10 ; // zero-based index
$end = 20 ; // zero-based index
for ($i = $start; $i < $end ; $i++) {
    echo $children[$i]->dist . "<br />";
}

以前的版本:

$line = 1 ;
foreach($xml->children() as $rec) { 
    echo $rec->dist . "<br />";
    if ($line++ == 10) break;
}

这将显示前 10 个元素。

如果您只想使用 XPath 提取节点...

$xml=simplexml_load_file("data.xml") or die("Error: Cannot create object");
$start = 2;
$end = 7;
$data = $xml->xpath("/*/*[position()>= $start and not(position() > $end)]");
print_r( $data);

这个 returns 您之后的元素数组,您可以根据需要对其进行处理。