Debe haber algún error en la URL porque la página me marca este error:
System.InvalidOperationException: Missing parameter
que falta un parámetro o parámetros. Revisala
Edit: más exactamente te falta el parámetro
rt
arreglando el parámetro rt y city_id me di cuenta que lo que pasa lo que decias en un inicio, ese servidor está muy saturado. Demora siglos para devolver el archivo XML. Puedes establecer un tiempo límite y mostrar un error en caso de que se esté demorando mucho... En el ejemplo tiene un límite de 10 segundos. Si pasan los 10 segundos u ocurre algún error mostrará el mensaje "Lo sentimos el servidor esta ocupado en este momento":
Código PHP:
Ver original<?php
array('http' => array('timeout' => 10))); //timeout
$xml_get = @file_get_contents("http://xml.e-travelsolution.com/xml/enginexml-agencies.asmx/getQuoteHotels?a=k4r3n-4n3l&pwd=5ecr370&c=PE&sd=20111111&ed=20111116&h=&rt=&mp=&r=1&r1a=2&r1k=0&r1k1a=-1&r1k2a=-1&r1k3a=-1&r2a=-1&r2k=-1&r2k1a=-1&r2k2a=-1&r2k3a=-1&r3a=-1&r3k=-1&r3k1a=-1&r3k2a=-1&r3k3a=-1&r4a=-1&r4k=-1&r4k1a=-1&r4k2a=-1&r4k3a=-1&r5a=-1&r5k=-1&r5k1a=-1&r5k2a=-1&r5k3a=-1&d=2&l=ESP&categoryid=&locationid=&chainid=&cityid=&fq=&co=MX", 0, $context);
if ($xml_get) {
$xml = new SimpleXMLElement($xml_get);
foreach ($xml->hotels->hotel as $item) {
$hoteles[] = array("idhotel" => (int
) $item->hotelid, "hotelname" => (string) ($item->hotelname), "ciudad" => (string) $item->cityname,
"ubicacionid" => (string) $item->ubicationid, "categoria" => (string) $item->categoryid,
"tarifaneta" => (int) $item->rooms->Roomrates->rate);
}
echo '<pre>';
echo '</pre>';
} else {
echo "Lo sentimos el servidor esta ocupado en este momento";
}
Saludos.