我正在构建一个基于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()')。可以以某种方式解决这个问题,还是应该从那时起将结果作为数组处理?