在simplexml_load_file之后对XML-doc进行排序

时间:2012-03-20 08:18:02

标签: php xml simplexml

我正在构建一个基于XML文档的PHP网站。我知道安全警告。我没有预料到的一个问题是,当加载XML文件时,结果不是普通数组,因此定期排序,限制或随机化不起作用。

我在stackoverflow上找到的解决方案是我应该加载文件,删除所有元素并重建结果,所以我这样做了:

if ( is_file( $file ) ) {

//Load the XML file
$loaded = simplexml_load_file( $file );

//We will be sorting the list based on lname
$names = array();
foreach ($loaded->xpath('//account/lname') as $name) {
$names[] .= $name;
}
sort($names);

//Rebuild the XML-list by lname
$list = array();
foreach ($names as $item) {
$list .= $loaded->xpath("//account[lname=\"{$item}\"]");
}

//Return the list
return (object)$list;
}

问题是结果现在不适用于xpath(错误:'调用未定义的方法stdClass :: xpath()')。可以以某种方式解决这个问题,还是应该从那时起将结果作为数组处理?

0 个答案:

没有答案