我需要帮助在simplexml语句中整理if语句

时间:2014-01-22 18:45:05

标签: php xml simplexml

一些基本背景......

我有一个表单,用于将数据输入到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可以帮助解决这个问题我会非常感激,并且只要我有声誉就会立即投票。如果之前已经提出过这个问题,或者过于模糊,我也会提前道歉。

1 个答案:

答案 0 :(得分:2)

如果xpath无法解析路径,则会返回false (see here)。用一个简单的检查包裹foreach循环:

if( $query ) {
    foreach($query as $node){
        ...
    }
}
else {
    // Echo the special div.
}

由于PHP是松散类型的,如果xpath碰巧返回一个空数组,则此检查也将处理该情况。请注意,如果xpath调用确实返回false,则可能会出现单独的错误,可能需要进行额外或替代处理。