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 您之后的元素数组,您可以根据需要对其进行处理。
我刚开始使用简单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 您之后的元素数组,您可以根据需要对其进行处理。