假设我有一个动态加载返回XML的方法返回的php页面。 XML是这样的:
<SYSTEM>
<GUY>
<ID>500</ID>
<NAME>Joseph</NAME>
<EMAIL>joseph@mark</EMAIL>
<ERROR />
</GUY>
<GUY>
<ID>510</ID>
<NAME>Richard</NAME>
<EMAIL>richard@gmail.com</EMAIL>
</GUY>
</SYSTEM>
现在我的PHP文件有一个简单的“if”来检查ERROR标记。如果检测到它,则会输出错误。 现在的结果是在正确的打印(理查德)之前打印错误。两者都应该打印,但我想在正确结果之后将错误放在底部。首先打印错误,因为它是XML的第一个结果。我怎么能绕过那个? 我认为这可能很简单,但我真的没有得到它。
我的PHP验证是这样的(它根据GUY标签的数量运行,因此根据我上面的XML,它将是两次):
$xmlresult = simplexml_load_string($xml);
$error = $xmlresult->xpath("//ERROR");
if($error==true){
echo "error message here";
} else {
echo "wee! no errors!"
}
答案 0 :(得分:0)
我接近这个的方法是在浏览XML文件时暂时将任何错误结果存储在列表中,然后打印好的文件。然后,一旦到达文件的末尾,您就可以浏览错误列表并在所有错误列表之后打印出来。
这种简单的算法应该适用于任何通过XML的方法,包括一个可以返回漂亮对象的解析库,以及更强大的基于字符串的方法。