一些基本背景......
我有一个表单,用于将数据输入到xml文件,另一个页面显示来自teh xml的数据,具体取决于它是否符合要求。所有这一切我都设法完成了,并感谢这里的一个成员,只要它有今天的日期和状态,我只能显示数据。但是,如果有的话,我会尝试对需要显示数据的if语句进行排序,如果没有则显示另一个div。
我的代码......
$lib = simplexml_load_file("sample.xml");
$today = date("m/d/y");
$query = $lib->xpath("//entry[.//date[contains(., '$today')]] | //entry[.//status[contains(., 'out')]]");
foreach($query as $node){
echo "<div id='one'>$node->name</div>
<div id='two'>$node->notes</div>
<div id='three'><div class='front'>$node->comments</div></div>";
}
因此,如果查询返回匹配的数据,那么foreach会显示另一个div
我只想知道if else声明的正确代码,如果soneone可以帮助解决这个问题我会非常感激,并且只要我有声誉就会立即投票。如果之前已经提出过这个问题,或者过于模糊,我也会提前道歉。
答案 0 :(得分:2)
如果xpath无法解析路径,则会返回false
(see here)。用一个简单的检查包裹foreach循环:
if( $query ) {
foreach($query as $node){
...
}
}
else {
// Echo the special div.
}
由于PHP是松散类型的,如果xpath碰巧返回一个空数组,则此检查也将处理该情况。请注意,如果xpath
调用确实返回false
,则可能会出现单独的错误,可能需要进行额外或替代处理。