simplexml_load_file : 如果主标签包含一些东西
simplexml_load_file : if main tag contains something
我不太确定标题,将在下几行中尝试解释。
我有一个这样的 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++;
}
}
您可以使用 XPath 仅获取 bay 0 汽车...
$bay0 = $xml->xpath('//CAR[@bay="0"]');
foreach ( $bay0 as $car ) {
echo $car->SITE_ID.PHP_EOL;
}
XPath 语句很简单 - 具有属性 bay
且其中值为 0 的任何 CAR
元素。
如果您需要在其他情况下访问属性,使用 SimpleXML - 您可以像访问数组元素一样访问它们,因此在您上面的代码中它将是 $car['bay']
。
我不太确定标题,将在下几行中尝试解释。
我有一个这样的 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++;
}
}
您可以使用 XPath 仅获取 bay 0 汽车...
$bay0 = $xml->xpath('//CAR[@bay="0"]');
foreach ( $bay0 as $car ) {
echo $car->SITE_ID.PHP_EOL;
}
XPath 语句很简单 - 具有属性 bay
且其中值为 0 的任何 CAR
元素。
如果您需要在其他情况下访问属性,使用 SimpleXML - 您可以像访问数组元素一样访问它们,因此在您上面的代码中它将是 $car['bay']
。