I'm receiving an touristic XML document which is structured like this:
<msResult timestamp="20130507153907">
<places>
<place id="1000008" name="Germany" placePath="1000008"/>
<place id="1000591" name="Berlin" placePath="10000081000591"/>
</places>
<rooms>
<room id="1002" name="Standard"/>
<room id="1042" name="Standart"/>
</rooms>
<foods>
<food id="2" name="BB" description="Breakfast"/>
<food id="1" name="No" description="No food"/>
</foods>
<hotels>
<hotel categoryId="6"/>
<hotel id="9047" placeId="1000591" name="BERLIN EXCELSIOR" categoryId="8" desc="en"/>
<hotel id="37803" placeId="1000591" name="MARK APART" categoryId="6" desc="en"/>
</hotels>
<routes>
<route id="223534">
<point>
<place placeId="1000591" hotelId="37803" categoryId="6" foodId="1" tourTypeIds="1" roomId="1002"/>
</point>
</route>
<route id="223535">
<point>
<place placeId="1000591" hotelId="9047" categoryId="8" foodId="1" tourTypeIds="1" roomId="1042"/>
</point>
</route>
</routes>
<tours>
<group departureId="64" currencyId="2" transportIds="1" includeIds="1 2 32" include="description" exclude="" comment="" program="" transport="">
<tourGroup duration="3" routeId="223534" statusId="3" tourTypeIds="1" dates="17.05.2013">
<tour accomId="6" price="850" ids="1339755026"/>
</tourGroup>
</group>
<group departureId="64" currencyId="2" transportIds="1" includeIds="1 2 32" include="descriptiin" exclude="" comment="" program="" transport="">
<tourGroup duration="3" routeId="223534" statusId="3" tourTypeIds="1" dates="31.05.2013">
<tour accomId="6" price="902" ids="1339755024"/>
</tourGroup>
</group>
<group departureId="64" currencyId="2" transportIds="1" includeIds="1 2 32" include="description" exclude="" comment="" program="" transport="">
<tourGroup duration="3" routeId="223535" statusId="3" tourTypeIds="1" dates="17.05.2013">
<tour accomId="6" price="981" ids="1339755027"/>
</tourGroup>
</group>
</tours>
</msResult>
I need to output each tour like this:
City name | Hotel name | Room type | Food type | Start Date | Duration | Price
My current PHP code is like this:
$xml = simplexml_load_string($out);
foreach ($xml->places->place as $place) {
?>
<h5><?php echo $place["name"]; ?> -
<?php
}
foreach ($xml->tours->group as $group) {
?>
Date: <?php echo $group->tourGroup["dates"]; ?> -
Days: <?php echo $group->tourGroup["duration"]; ?> -
Price: $<?php echo $group->tourGroup->tour["price"];
}
This works, but unfortunately it outputs only separate XML values.
To get the whole structure properly I need to associate the non-constant value "routeId=xxx"
in <tourGroup>
with the same value in <route id="xxx">
from which I can then take the "id"
in <place placeId="xxx">
and output the "name"
from <places>
<place id="xxx" name="...">
, and then do the same for <hotelId="xxx">
and output the "name"
from <hotels>
<hotel id="xxx" name="...">
and so on for <roomId>
and <foodId>
. I hope that makes a bit of sense.
Unfortunately I just can't get my head around this and my PHP knowledge is pretty basic, but if someone can point me in the right direction, I'd really appreciate it. Thank you!