Nie jestem pewien co do tytułu, postaram się wyjaśnić w następnych wierszach.
Mam taki plik XML:
<CAR park="3" id="1" bay="0">
<SITE_ID>0</SITE_ID>
<SITE_NAME>Car Seller 1</SITE_NAME>
. . .
</CAR>
Udało mi się iterować przez mój xml, aby uzyskać wszystkie dane. Ale chcę mieć możliwość filtrowania według zatok. Chcę zrobić coś takiego
$xml = simplexml_load_file("myfile.xml");
$x = 1;
foreach($xml as $car) {
if($car->bay == "0"){
echo $car->SITE_ID;
$x++;
}
}
Odpowiedzi:
1 dla odpowiedzi № 1Możesz użyć XPath do pobrania tylko samochodów z wnęką 0 ...
$bay0 = $xml->xpath("//CAR[@bay="0"]");
foreach ( $bay0 as $car ) {
echo $car->SITE_ID.PHP_EOL;
}
Instrukcja XPath jest po prostu - dowolna CAR
element, który ma atrybut bay
z wartością 0 w nim.
Jeśli potrzebujesz dostępu do atrybutów w innych przypadkach, z SimpleXML - masz do nich dostęp tak, jakby były elementami tablicy, więc byłoby $car["bay"]
w kodzie, który miałeś powyżej.