PHP simplexml在xml

时间:2018-02-01 16:09:46

标签: php xml simplexml

我刚刚开始使用simplexml,我有以下语句显示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)?

提前thx!

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

$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个第一个元素。

答案 1 :(得分:0)

如果您想使用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);

这将返回您之后的元素数组,然后您可以根据需要处理它们。