Estou com bastante dificuldade de imprimir informações vindo de um xml com o PHP.
A requisição do wml é assim:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <LoginHeader Domain="myDomain" xmlns="http://TrendOperadora.SIG.XML.DataTypes/2007/09"> <AccessCode>99999999</AccessCode> <UserName>myUserName</UserName> <Password>myPassword</Password> </LoginHeader> </soap:Header> <soap:Body> <SearchHotelRequest xmlns="http://TrendOperadora.SIG.XML.ServiceContracts/2007/09"> <DestinationId>5238</DestinationId> <CheckIn>2007-12-13</CheckIn> <CheckOut>2007-12-16</CheckOut> <RoomsInformation> <RoomInfoType> <AdultsNum xmlns="http://TrendOperadora.SIG.XML.DataTypes/2007/09">2</AdultsNum> <ChildrenNum xmlns="http://TrendOperadora.SIG.XML.DataTypes/2007/09">2</ChildrenNum> <ChildAges xmlns="http://TrendOperadora.SIG.XML.DataTypes/2007/09"> <short>4</short> <short>5</short> </ChildAges> </RoomInfoType> <RoomInfoType> <AdultsNum xmlns="http://TrendOperadora.SIG.XML.DataTypes/2007/09">2</AdultsNum> <ChildrenNum xmlns="http://TrendOperadora.SIG.XML.DataTypes/2007/09">0</ChildrenNum> </RoomInfoType> </RoomsInformation> <MaxAvrNightPrice>300</MaxAvrNightPrice> <AvailableOnly>True</AvailableOnly> </SearchHotelRequest> </soap:Body> </soap:Envelope>
A resposta do xml deve ficar assim:
<SearchHotelResult xmlns="http://TrendOperadora.SIG.XML.DataTypes/2007/09/SearchHotelResult.xsd"> <RoomsInfoResquested RoomsInfoResquestedId="400111"> <RoomRequested Index="0" RoomResquestedId="400111" numAdults="2" numChildren="2" ChildAges="4;5" AccomodationTypeId="3" AccomodationType="TPL" /> <RoomRequested Index="1" RoomResquestedId="400111" numAdults="2" numChildren="0" ChildAges="" AccomodationTypeId="2" AccomodationType="DBL" /> </RoomsInfoResquested> <Hotel HotelId="100002" Name="SAN JUAN SAO PAULO" Chain="SAN JUAN" CategoryId="4" Category="QUATRO ESTRELAS" Description="" Address="RUA AURORA, 909, VILA BUARQUE" Location="SAO PAULO, SP, BRASIL" Thumb="0000000000_0.gif" Currency="BRL" minAvrNightPrice="250" minAvrNightPriceNet="225" Tax="0" IsAvailable="true" minNights="0"> <RoomType RoomTypeId="7183" Name="DBL - LUX" HotelId="100002" BoardBaseId="8" BoardBase="CAFÉ DA MANHÃ" BedTypeId="0" BedType="" AccomodationTypeId="2" AccomodationType="DUPLO" avrNightPrice="110" avrNightPriceNet="99" Tax="0" qtyAvailable="5"> <PricesAndAvailability RoomTypeId="7183" Date="2007-12-13T00:00:00-02:00" Price="110" PriceNet="99" Tax="0" qtyAvailable="5" RateTypeId="0" RateType="NORMAL" /> <PricesAndAvailability RoomTypeId="7183" Date="2007-12-14T00:00:00-02:00" Price="110" PriceNet="99" Tax="0" qtyAvailable="5" RateTypeId="0" RateType="NORMAL" /> <PricesAndAvailability RoomTypeId="7183" Date="2007-12-15T00:00:00-02:00" Price="110" PriceNet="99" Tax="0" qtyAvailable="5" RateTypeId="0" RateType="NORMAL" /> </RoomType> <RoomType RoomTypeId="7185" Name="TPL - LUX" HotelId="100002" BoardBaseId="8" BoardBase="CAFÉ DA MANHÃ" BedTypeId="0" BedType="" AccomodationTypeId="3" AccomodationType="TRIPLO" avrNightPrice="140" avrNightPriceNet="126" Tax="0" qtyAvailable="3"> <PricesAndAvailability RoomTypeId="7185" Date="2007-12-13T00:00:00-02:00" Price="140" PriceNet="126" Tax="0" qtyAvailable="3" RateTypeId="0" RateType="NORMAL" /> <PricesAndAvailability RoomTypeId="7185" Date="2007-12-14T00:00:00-02:00" Price="140" PriceNet="126" Tax="0" qtyAvailable="3" RateTypeId="0" RateType="NORMAL" /> <PricesAndAvailability RoomTypeId="7185" Date="2007-12-15T00:00:00-02:00" Price="140" PriceNet="126" Tax="0" qtyAvailable="3" RateTypeId="0" RateType="NORMAL" /> </RoomType> </Hotel> <Hotel HotelId="100018" Name="TESTE PLAZA (HOTEL P/ TREINAMENTO DE EMISSORES)" Chain="--" CategoryId="1" Category="UMA ESTRELA" Description="Com localização privilegiada entre a Baia do Nunca e o Neverland Trade Center, o Teste Plaza une negócios e lazer em um ambiente requintado e aconchegante." Address="TERRA DO NUNCA, S/N, NEVERLAND" Location="SAO PAULO, SP, BRASIL" Thumb="0000000082_A.JPG" Currency="BRL" minAvrNightPrice="300"minAvrNightPriceNet="270" Tax="15" IsAvailable="true" minNights="0"> <RoomType RoomTypeId="5440" Name="DBL - SUP" HotelId="100018" BoardBaseId="0" BoardBase="NÃO INCLUI" BedTypeId="0" BedType="" AccomodationTypeId="2" AccomodationType="DUPLO" avrNightPrice="140" avrNightPriceNet="126" Tax="15" qtyAvailable="10"> <PricesAndAvailability RoomTypeId="5440" Date="2007-12-13T00:00:00-02:00" Price="140" PriceNet="126" Tax="15" qtyAvailable="10" RateTypeId="0" RateType="NORMAL" /> <PricesAndAvailability RoomTypeId="5440" Date="2007-12-14T00:00:00-02:00" Price="140" PriceNet="126" Tax="15" qtyAvailable="10" RateTypeId="0" RateType="NORMAL" /> <PricesAndAvailability RoomTypeId="5440" Date="2007-12-15T00:00:00-02:00" Price="140" PriceNet="126" Tax="15" qtyAvailable="10" RateTypeId="0" RateType="NORMAL" /> </RoomType> <RoomType RoomTypeId="5444" Name="TPL - SUP" HotelId="100018" BoardBaseId="0" BoardBase="NÃO INCLUI" BedTypeId="0" BedType="" AccomodationTypeId="3" AccomodationType="TRIPLO" avrNightPrice="160" avrNightPriceNet="144" Tax="15" qtyAvailable="10"> <PricesAndAvailability RoomTypeId="5444" Date="2007-12-13T00:00:00-02:00" Price="160" PriceNet="144" Tax="15" qtyAvailable="10" RateTypeId="0" RateType="NORMAL" /> <PricesAndAvailability RoomTypeId="5444" Date="2007-12-14T00:00:00-02:00" Price="160" PriceNet="144" Tax="15" qtyAvailable="10" RateTypeId="0" RateType="NORMAL" /> <PricesAndAvailability RoomTypeId="5444" Date="2007-12-15T00:00:00-02:00" Price="160" PriceNet="144" Tax="15" qtyAvailable="10" RateTypeId="0" RateType="NORMAL" /> </RoomType> </Hotel> </SearchHotelResult>
Já consegui pegar por arrays, os valores das variáveis do Método RoomsInfoResquested e do método Hotel. Agora quero imprimir os valores do método Roomtype que se perceber no xml response, fica dentro do método Hotel. Como eu poderia juntar o metodo Hotel com o Roomtype, para dai sim imiprimir os valores do metodo Roomtype?
Aqui esta o código que usei para imprimir os valores das variáveis dos métodos RoomsInfoResquested e Hotem:
RoomsInfoResquested
echo "<br>RoomRequested<table border='1'> <td>Index</td> <td>RoomResquestedId</td> <td>numAdults</td> <td>numChildren</td> <td>ChildAges</td> <td>AccomodationTypeId</td> <td>AccomodationType</td> "; if (isset($result['SearchHotelResult']['diffgram']['SearchHotelResult']['RoomsInfoResquested']['RoomRequested'])) { $locais = $result['SearchHotelResult']['diffgram']['SearchHotelResult']['RoomsInfoResquested']['RoomRequested']; if (isset($locais[0])) { foreach($locais as $key=>$val) { echo "<tr> <td>{$locais[$key]['!Index']}</td> <td>{$locais[$key]['!RoomResquestedId']}</td> <td>{$locais[$key]['!numAdults']}</td> <td>{$locais[$key]['!numChildren']}</td> <td>{$locais[$key]['!ChildAges']}</td> <td>{$locais[$key]['!AccomodationTypeId']}</td> <td>{$locais[$key]['!AccomodationType']}</td> </tr>"; } } else { echo "<tr> <td>{$locais['!Index']}</td> <td>{$locais['!RoomResquestedId']}</td> <td>{$locais['!numAdults']}</td> <td>{$locais['!numChildren']}</td> <td>{$locais['!ChildAges']}</td> <td>{$locais['!AccomodationTypeId']}</td> <td>{$locais['!AccomodationType']}</td> </tr>"; } } else { echo "<tr> <td>---</td> <td>---</td> </tr>"; } echo "</tbody></table>";
Hotel
echo "<br/>sss<table border='1'> <thead> <th>HotelId </th> <th>Name </th> <th>Chain </th> <th>CategoryId </th> <th>Category </th> <th>Description </th> <th>Address </th> <th>Location </th> <th>Thumb </th> <th>Currency </th> <th>minAvrNightPrice </th> <th>minAvrNightPriceNet </th> <th>Tax </th> <th>IsAvailable </th> <th>HotelPreferencial </th> <th>minNights </th> </thead> <tbody>"; $locais = $result['SearchHotelResult']['diffgram']['SearchHotelResult']['Hotel']; $locais_2 = $result_2['SearchHotelResult']['diffgram']['SearchHotelResult']['Hotel']['RoomType']; print_r ($result_2); asort($locais); foreach($locais as $key=>$val) { $total_dias_3=$locais[$key]['!minAvrNightPrice']; $total_dias_4=number_format($total_dias_3, 2, ',', '.'); $total_dias=$dias*$locais[$key]['!minAvrNightPrice']; $total_dias_2=number_format($total_dias, 2, ',', '.'); $total_2= $Adultos_hotel*$total_dias; $total=number_format($total_2, 2, ',', '.'); echo "<tr> <td><a href=\"procura_hotel_detalhes.php?HotelId={$locais[$key]['!HotelId']}\">Mais detalhes</a><br /> <br /> <a href=\"procura_hotel_id.php?HotelId={$locais[$key]['!HotelId']}&Dataentrada_hotel_convertida=$Dataentrada_hotel_convertida&Datasaida_hotel_convertida=$Datasaida_hotel_convertida&Adultos_hotel=$Adultos_hotel&Criancas_hotel=$Criancas_hotel\">Mais quartos</a></td> <td>{$locais[$key]['!Name']}</td> <td>{$locais[$key]['!Chain']}</td> <td>{$locais[$key]['!CategoryId']}</td> <td>{$locais[$key]['!Category']}</td> <td>{$locais[$key]['!Description']}</td> <td>{$locais[$key]['!Address']}</td> <td>{$locais[$key]['!Location']}</td> <td>{$locais[$key]['!Thumb']}</td> <td>{$locais[$key]['!Currency']}</td> <td>Preço por diária: <br/>$total_dias_4<br/><br/>Total de $dias diárias: <br/>$total_dias_2 <br/><br/>Adultos: <br/>$Adultos_hotel <br/><br/>Total: <br/>$total </td> <td>{$locais[$key]['!minAvrNightPriceNet']}</td> <td>{$locais[$key]['!Tax']}</td> <td>{$locais[$key]['!IsAvailable']}</td> <td>{$locais[$key]['!HotelPreferencial']}</td> <td>{$locais[$key]['!minNights']}</td> </tr>"; } echo "</tbody></table>";