0

I'm not so sure about the title, will try to explain in the next lines.

I have an xml file like this :

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

I am sucessfully iterating through my xml to get all the data. But, I want to be able to filter by bays. I want to do something like

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

1 Answer 1

1

You can use XPath to fetch only the bay 0 cars...

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

The XPath statement is simply - any CAR element that has an attribute bay with the value 0 in it.

In case you need to access attributes in other cases, with SimpleXML - you access them as though they are array elements, so it would be $car['bay'] in the code you had above.

Sign up to request clarification or add additional context in comments.

1 Comment

Works great ! Thank you so much for the explanation !

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.