simplexml_load_file:如果主标记包含某些内容

时间:2017-10-16 09:20:42

标签: php xml filter simplexml

我对标题不太确定,会尝试在下一行解释。

我有一个像这样的xml文件:

 <CAR park="3" id="1" bay="0">
    <SITE_ID>0</SITE_ID>
    <SITE_NAME>Car Seller 1</SITE_NAME>
    . . .
 </CAR>

我成功迭代我的xml以获取所有数据。 但是,我希望能够通过海湾过滤。我想做像

这样的事情
$xml = simplexml_load_file('myfile.xml');
$x = 1;
    foreach($xml as $car) {
    if($car->bay == '0'){
        echo $car->SITE_ID;
    $x++;
     }

    }

1 个答案:

答案 0 :(得分:1)

您可以使用XPath仅获取托架0汽车......

$bay0 = $xml->xpath('//CAR[@bay="0"]');
foreach ( $bay0 as $car )   {
    echo $car->SITE_ID.PHP_EOL;
}

XPath语句很简单 - 任何CAR个元素,其元素bay的值为0。

如果您需要在其他情况下访问属性,使用SimpleXML - 您可以像访问数组元素一样访问它们,因此在上面的代码中它将是$car['bay']