PHP XML解析器 - 未找到属性时的Echo消息

时间:2015-02-26 01:13:55

标签: php xml

我们说我有以下xml文件:

<menu_items>
  <food type="pizza" ingredient="cheese"/>
  <food type="spaghetti" ingredient="tomatoes"/>
  <food type="pizza" ingredient="pepperoni"/>
  <food type="hamburger" ingredient="beef"/>
  <!-- etc. -->
</menu_items>

我有一段PHP代码可以抓取这个xml文件并查找type =&#34; pizza&#34;只要。然后它回应了它找到的每一个披萨的成分。

$url = "http://example.com/data.xml";
    $xml = simplexml_load_file($url);
foreach($xml->food as $food){
    If ($food["type"] == "pizza")
        {echo $food["ingredient"] . "<br>";}
    else
        {echo "No pizzas found!";}
}

我希望它回应&#34;没有找到比萨饼&#34;当在xml文件中找到零比萨饼时。正如预期的那样,使用我现有的PHP代码,它回应了未发现的#13;&#34;对于不是比萨饼的每种类型,一遍又一遍。

因此,如果没有发现任何比萨饼那么回声&#34;没有发现比萨饼&#34;只有一次。

1 个答案:

答案 0 :(得分:0)

试试这个:

$url = "http://example.com/data.xml";
$xml = simplexml_load_file($url);
$pizzaflag = false;

foreach($xml->food as $food) {
    if ($food["type"] == "pizza") {
        echo $food["ingredient"] . "<br>";
        $pizzaflag = true;
    }
}

if ($pizzaflag == false) {
    echo "No pizzas found!";
}