Tengo que recorrer el siguiente xml:
Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelAvailRS SequenceNmbr="xaiGhd9Adrq18VKow=">
<Success />
<RoomStays>
<RoomStay>
<RoomRates>
<RoomRate RatePlanCode="/dfsfdf" RatePlanCategory="Sólo Alojamiento" AvailabilityStatus="AvailableForSale">
<Rates>
<Rate NumberOfUnits="3" RateMode="Room">
<Total AmountAfterTax="572.16" DecimalPlaces="2" />
<RateDescription>
<Text>Cuádruple</Text>
</RateDescription>
<TPA_Extensions>
<DailyBreakdown xmlns="">143,04#143,04#143,04#143,04 </DailyBreakdown>
<DailyContractNames xmlns="">General#General#General#General</DailyContractNames>
<ContractTypes xmlns="">RCK</ContractTypes>
<RoomType xmlns="">119</RoomType>
<Mealplan xmlns="">3</Mealplan>
</TPA_Extensions>
</Rate>
</Rates>
<Total AmountAfterTax="1716.48" CurrencyCode="USD" DecimalPlaces="2" /> </RoomRate>
<RoomRate RatePlanCode="18xHYenjKuAY9" RatePlanCategory="Alojamiento y Desayuno" AvailabilityStatus="AvailableForSale">
<Rates>
<Rate NumberOfUnits="3" RateMode="Room">
<Total AmountAfterTax="715.16" DecimalPlaces="2" />
<RateDescription>
<Text>Cuádruple</Text>
</RateDescription>
<TPA_Extensions>
<DailyBreakdown xmlns="">178,79#178,79#178,79#178,79 </DailyBreakdown>
<DailyContractNames xmlns="">General#General#General#General</DailyContractNames>
<RoomType xmlns="">119</RoomType>
</TPA_Extensions>
</Rate>
</Rates>
<Total AmountAfterTax="2145.48" CurrencyCode="USD" DecimalPlaces="2" />
</RoomRate>
</RoomRates>
<TimeSpan Start="2009-11-26" End="2009-11-30" />
<Total CurrencyCode="USD" />
<BasicPropertyInfo HotelCode="HBE|21" HotelName="Omm" />
<TPA_Extensions>
<HotelInfo xmlns="">
<Category Code="4" CodeDetail="4 Estrellas" />
<Description><![CDATA[Hotel de diseño situado a una manzana del metro de Diagonal y cerca de las boutiques del Passeig de Grà cia]]></Description>
<Thumb><![CDATA[/upload_p/Omm/foto1.jpg]]></Thumb>
<Zone><![CDATA[Rossello 265, 08008 Barcelona, Spain - Barcelona Ciudad]]></Zone>
<Latitude>41.39591</Latitude>
<Longitude>2.160784</Longitude>
<Provider PaymentType="X" Type="S">HBE</Provider>
<Order>0</Order>
<BestDeal>0</BestDeal>
<Home>0</Home>
<LastMinute>0</LastMinute>
</HotelInfo>
</TPA_Extensions>
</RoomStay>
</RoomStays>
</OTA_HotelAvailRS>
El problema es que no consigo acceder al atributo AmountAfterTax="2145.48" de Total
alguien podria decirme como acceder a este elemento.
Código PHP:
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->loadXML($xml_rs);
$OTA_HotelAvailRS = $dom->getElementsByTagName( "OTA_HotelAvailRS" );
$SequenceNmbr = $OTA_HotelAvailRS->item(0)->getAttribute('SequenceNmbr');
$roomstay = $OTA_HotelAvailRS->item(0)->getElementsByTagName( "RoomStay" );
foreach($roomstay as $RoomStay){
$basicpropertyinfo = $RoomStay->getElementsByTagName( "BasicPropertyInfo" );
$HotelName = utf8_decode($basicpropertyinfo->item(0)->getAttribute('HotelName'));
$HotelCode = $basicpropertyinfo->item(0)->getAttribute('HotelCode');
$hotelinfo = $RoomStay->getElementsByTagName( "HotelInfo" );
$HotelInfo = $hotelinfo->item(0)->getElementsByTagName( "Category" );
$roomrate = $RoomStay->getElementsByTagName( "RoomRate" );
foreach($roomrate as $RoomRate){
$RatePlanCode = $RoomRate->getAttribute('RatePlanCode');
$Total = $RoomRate->lastChild; //esto no es correcto pero ¿como lo hago?
$AmountAfterTax = $Total->getAttribute('AmountAfterTax');
$Total_CurrencyCode = $Total->getAttribute('CurrencyCode');
$rate = $RoomRate->getElementsByTagName( "Rate" );
foreach($rate as $Rate){
$NumberOfUnits = $Rate->getAttribute('NumberOfUnits');
$Total_hab = $Rate->getElementsByTagName( "Total" );
$AmountAfterTax_hab = $Total_hab->item(0)->getAttribute('AmountAfterTax');
$RateDescription = $Rate->getElementsByTagName( "RateDescription" );
$TPA_Extensions = $Rate->getElementsByTagName( "TPA_Extensions" );
$dailybreakdown = $TPA_Extensions->item(0)->getElementsByTagName( "DailyBreakdown" );
$DailyBreakdown = $dailybreakdown->item(0)->nodeValue;
}
}
}
Si alguien tiene experiencia en recorrer xml con php y me puede echar una mano se lo agradezco.
Saludos,
Gracias