Foros del Web » Programando para Internet » PHP »

Errores en integracion XML con PHP

Estas en el tema de Errores en integracion XML con PHP en el foro de PHP en Foros del Web. Tengo que hacer una integracion XML y me han proporcionado el siguiente codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <? //XML Request $xml = "codigousu=" ...
  #1 (permalink)  
Antiguo 09/01/2013, 16:38
 
Fecha de Ingreso: diciembre-2012
Mensajes: 17
Antigüedad: 11 años, 4 meses
Puntos: 0
Errores en integracion XML con PHP

Tengo que hacer una integracion XML y me han proporcionado el siguiente codigo:
Código PHP:
Ver original
  1. <?
  2. //XML Request
  3. $xml = "codigousu=" ."xxxx";
  4. $xml .= "&clausu=" . "xxxxxxx";
  5. $xml .= "&afiliacio=" . "xx";
  6. $xml .= "&secacc=" . "xxxxx";
  7. $xml .= "&xml=";
  8. $xml2 = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
  9. $xml2 .= "<peticion>
  10. <nombre>Petición de Paises</nombre>
  11. <agencia>Viajes Rufet</agencia>
  12. <tipo>5</tipo>
  13. </peticion>";
  14.  
  15. $xml .= urlencode($xml2);
  16. $length = strlen($xml);
  17. //XML Connection
  18. $fp = @fsockopen("xml.hotelresb2b.com", 80);
  19. fputs($fp, "POST http://xml.hotelresb2b.com/xml/listen_xml.jsp HTTP/1.0\nUser-Agent: PHP XMLRPC 1.1\r\n");
  20. fputs($fp, "Host: xml.hotelresb2b.com\n");
  21. fputs($fp, "Content-Type: application/x-www-form-urlencoded\n");
  22. fputs($fp, "Content-Length: " . $length . "\n");
  23. fputs($fp, "\n");
  24. fputs($fp, $xml);
  25. $respuesta = "";
  26. while(!feof($fp)) $respuesta .= fgets($fp);
  27.  
  28. fclose ($fp);
  29. //XML Answer
  30. $xml = substr($respuesta, strpos($respuesta, "<?xml"));
  31. $xml = new SimpleXMLElement($xmlstr); //Simple XML is available from php5
  32. $no_hotels = count($xml->parametros->hoteles->hotel);
  33. for($i=0;$i<$no_hotels;$i++)
  34. {
  35. $hotel = $xml->parametros->hoteles->hotel[$i];
  36. print($hotel->nombre_h); // prints te hotelname etc.
  37. }

Me esta tirando varios errores en esta linea:

Código PHP:
Ver original
  1. $xml = new SimpleXMLElement($xmlstr);

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /homepages/41/d345211751/htdocs/modulos_creados/hotusa.php:35 Stack trace: #0 /homepages/41/d345211751/htdocs/modulos_creados/hotusa.php(35): SimpleXMLElement->__construct('') #1 /homepages/41/d345211751/htdocs/modules/mod_jumi/tmpl/default.php(12) : eval()'d code(2): include('/homepages/41/d...') #2 /homepages/41/d345211751/htdocs/modules/mod_jumi/tmpl/default.php(12): eval() #3 /homepages/41/d345211751/htdocs/modules/mod_jumi/mod_jumi.php(22): require('/homepages/41/d...') #4 /homepages/41/d345211751/htdocs/plugins/system/advancedmodules/modulehelper.php(196): require('/homepages/41/d...') #5 /homepages/41/d345211751/htdocs/libraries/joomla/document/html/renderer/module.php(84): JModuleHelper->renderModule(Object(stdClass), Array) #6 /homepages/41/d345211751/htdocs/libraries/joomla/document/html/renderer/modules.php(41): JDocumentRendererModule->render(Object(stdClass), Array, NULL) #7 /homepages/41/d345211751/htdocs/librarie in /homepages/41/d345211751/htdocs/modulos_creados/hotusa.php on line 35

Y este lo que contiene $xml (respuesta del servidor) antes de intentar crear el xml:

Código XML:
Ver original
  1. <!DOCTYPE respuesta SYSTEM "http://hotelresb2b.com/xml/dtd/res_paises.dtd">
  2. <respuesta>
  3.     <tipo><![CDATA[5]]></tipo>
  4.     <nombre><![CDATA[Petición de Paises]]></nombre>
  5.     <agencia><![CDATA[GOOD FLY TRAVEL XML @]]></agencia>
  6.     <parametros>
  7.         <paises>
  8.            
  9.             <pais>
  10.                 <codigo_pais><![CDATA[AG]]></codigo_pais>
  11.                 <nombre_pais><![CDATA[ARGENTINA]]></nombre_pais>
  12.             </pais>
  13.             <pais>
  14.                 <codigo_pais><![CDATA[AM]]></codigo_pais>
  15.                 <nombre_pais><![CDATA[ARMENIA]]></nombre_pais>
  16.             </pais>
  17.             <pais>
  18.                 <codigo_pais><![CDATA[AU]]></codigo_pais>
  19.                 <nombre_pais><![CDATA[AUSTRIA]]></nombre_pais>
  20.             </pais>
  21.             <pais>
  22.                 <codigo_pais><![CDATA[BE]]></codigo_pais>
  23.                 <nombre_pais><![CDATA[BELGICA]]></nombre_pais>
  24.             </pais>
  25.             <pais>
  26.                 <codigo_pais><![CDATA[BH]]></codigo_pais>
  27.                 <nombre_pais><![CDATA[BOSNIA AND HERZEGOVINA]]></nombre_pais>
  28.             </pais>
  29.             <pais>
  30.                 <codigo_pais><![CDATA[BR]]></codigo_pais>
  31.                 <nombre_pais><![CDATA[BRASIL]]></nombre_pais>
  32.             </pais>
  33.             <pais>
  34.                 <codigo_pais><![CDATA[BU]]></codigo_pais>
  35.                 <nombre_pais><![CDATA[BULGARIA]]></nombre_pais>
  36.             </pais>
  37.             <pais>
  38.                 <codigo_pais><![CDATA[CV]]></codigo_pais>
  39.                 <nombre_pais><![CDATA[CABO VERDE]]></nombre_pais>
  40.             </pais>
  41.             <pais>
  42.                 <codigo_pais><![CDATA[CL]]></codigo_pais>
  43.                 <nombre_pais><![CDATA[CHILE]]></nombre_pais>
  44.             </pais>
  45.            
  46.            
  47.             <pais>
  48.                 <codigo_pais><![CDATA[HR]]></codigo_pais>
  49.                 <nombre_pais><![CDATA[CROACIA]]></nombre_pais>
  50.             </pais>
  51.             <pais>
  52.                 <codigo_pais><![CDATA[CU]]></codigo_pais>
  53.                 <nombre_pais><![CDATA[CUBA]]></nombre_pais>
  54.             </pais>
  55.             <pais>
  56.                 <codigo_pais><![CDATA[DI]]></codigo_pais>
  57.                 <nombre_pais><![CDATA[DINAMARCA]]></nombre_pais>
  58.             </pais>
  59.             <pais>
  60.                 <codigo_pais><![CDATA[EC]]></codigo_pais>
  61.                 <nombre_pais><![CDATA[ECUADOR]]></nombre_pais>
  62.             </pais>
  63.            
  64.             <pais>
  65.                 <codigo_pais><![CDATA[AE]]></codigo_pais>
  66.                 <nombre_pais><![CDATA[EMIRATOS ARABES UNIDOS]]></nombre_pais>
  67.             </pais>
  68.             <pais>
  69.                 <codigo_pais><![CDATA[SK]]></codigo_pais>
  70.                 <nombre_pais><![CDATA[ESLOVAQUIA]]></nombre_pais>
  71.             </pais>
  72.             <pais>
  73.                 <codigo_pais><![CDATA[SL]]></codigo_pais>
  74.                 <nombre_pais><![CDATA[ESLOVENIA]]></nombre_pais>
  75.             </pais>
  76.             <pais>
  77.                 <codigo_pais><![CDATA[ES]]></codigo_pais>
  78.                 <nombre_pais><![CDATA[ESPAÑA]]></nombre_pais>
  79.             </pais>
  80.             <pais>
  81.                 <codigo_pais><![CDATA[US]]></codigo_pais>
  82.                 <nombre_pais><![CDATA[ESTADOS UNIDOS]]></nombre_pais>
  83.             </pais>
  84.             <pais>
  85.                 <codigo_pais><![CDATA[FI]]></codigo_pais>
  86.                 <nombre_pais><![CDATA[FINLANDIA]]></nombre_pais>
  87.             </pais>
  88.             <pais>
  89.                 <codigo_pais><![CDATA[FR]]></codigo_pais>
  90.                 <nombre_pais><![CDATA[FRANCIA]]></nombre_pais>
  91.             </pais>
  92.             <pais>
  93.                 <codigo_pais><![CDATA[IN]]></codigo_pais>
  94.                 <nombre_pais><![CDATA[GRAN BRETAÑA]]></nombre_pais>
  95.             </pais>
  96.            
  97.             <pais>
  98.                 <codigo_pais><![CDATA[JM]]></codigo_pais>
  99.                 <nombre_pais><![CDATA[JAMAICA]]></nombre_pais>
  100.             </pais>
  101.             <pais>
  102.                 <codigo_pais><![CDATA[KE]]></codigo_pais>
  103.                 <nombre_pais><![CDATA[KENIA]]></nombre_pais>
  104.             </pais>
  105.             <pais>
  106.                 <codigo_pais><![CDATA[LE]]></codigo_pais>
  107.                 <nombre_pais><![CDATA[LETONIA]]></nombre_pais>
  108.             </pais>
  109.             <pais>
  110.                 <codigo_pais><![CDATA[MC]]></codigo_pais>
  111.                 <nombre_pais><![CDATA[MACEDONIA]]></nombre_pais>
  112.             </pais>
  113.             <pais>
  114.                 <codigo_pais><![CDATA[ML]]></codigo_pais>
  115.                 <nombre_pais><![CDATA[MALTA]]></nombre_pais>
  116.             </pais>
  117.             <pais>
  118.                 <codigo_pais><![CDATA[MA]]></codigo_pais>
  119.                 <nombre_pais><![CDATA[MARRUECOS]]></nombre_pais>
  120.             </pais>
  121.  
  122.             <pais>
  123.                 <codigo_pais><![CDATA[CE]]></codigo_pais>
  124.                 <nombre_pais><![CDATA[REPUBLICA CHECA]]></nombre_pais>
  125.             </pais>
  126.             <pais>
  127.                 <codigo_pais><![CDATA[RD]]></codigo_pais>
  128.                 <nombre_pais><![CDATA[REPUBLICA DOMINICANA]]></nombre_pais>
  129.             </pais>
  130.             <pais>
  131.                 <codigo_pais><![CDATA[RM]]></codigo_pais>
  132.                 <nombre_pais><![CDATA[RUMANIA]]></nombre_pais>
  133.             </pais>
  134.             <pais>
  135.                 <codigo_pais><![CDATA[RU]]></codigo_pais>
  136.                 <nombre_pais><![CDATA[RUSIA]]></nombre_pais>
  137.             </pais>
  138.             <pais>
  139.                 <codigo_pais><![CDATA[SM]]></codigo_pais>
  140.                 <nombre_pais><![CDATA[SAN MARINO]]></nombre_pais>
  141.             </pais>
  142.             <pais>
  143.                 <codigo_pais><![CDATA[ST]]></codigo_pais>
  144.                 <nombre_pais><![CDATA[SANTO TOME Y PRINCIPE]]></nombre_pais>
  145.             </pais>
  146.             <pais>
  147.                 <codigo_pais><![CDATA[SE]]></codigo_pais>
  148.                 <nombre_pais><![CDATA[SERBIA]]></nombre_pais>
  149.             </pais>
  150.             <pais>
  151.                 <codigo_pais><![CDATA[ZA]]></codigo_pais>
  152.                 <nombre_pais><![CDATA[SUDAFRICA]]></nombre_pais>
  153.             </pais>
  154.             <pais>
  155.                 <codigo_pais><![CDATA[SU]]></codigo_pais>
  156.                 <nombre_pais><![CDATA[SUECIA]]></nombre_pais>
  157.             </pais>
  158.             <pais>
  159.                 <codigo_pais><![CDATA[SI]]></codigo_pais>
  160.                 <nombre_pais><![CDATA[SUIZA]]></nombre_pais>
  161.             </pais>
  162.             <pais>
  163.                 <codigo_pais><![CDATA[TH]]></codigo_pais>
  164.                 <nombre_pais><![CDATA[TAILANDIA]]></nombre_pais>
  165.             </pais>
  166.             <pais>
  167.                 <codigo_pais><![CDATA[TN]]></codigo_pais>
  168.                 <nombre_pais><![CDATA[TUNEZ]]></nombre_pais>
  169.             </pais>
  170.             <pais>
  171.                 <codigo_pais><![CDATA[TU]]></codigo_pais>
  172.                 <nombre_pais><![CDATA[TURQUIA]]></nombre_pais>
  173.             </pais>
  174.             <pais>
  175.                 <codigo_pais><![CDATA[UY]]></codigo_pais>
  176.                 <nombre_pais><![CDATA[URUGUAY]]></nombre_pais>
  177.             </pais>
  178.         </paises>
  179.         <id>59221af2-ef89-4b61-9078-2c434a0d40d3</id>
  180.     </parametros>
  181. </respuesta>

Una ayuda please que estoy estancado aqui.
  #2 (permalink)  
Antiguo 09/01/2013, 17:25
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Errores en integracion XML con PHP

Así recorres tu XML

Código PHP:
Ver original
  1. $sxe = new SimpleXMLElement(utf8_encode($xml), LIBXML_NOCDATA);
  2.  
  3. foreach ($sxe->parametros->paises->pais as $pais) {
  4.     echo $pais->nombre_pais . '<br />';
  5. }
  6.  
  7. //Ya si quieres guardar la respuesta en un archivo, colocas:
  8.  
  9. $sxe->saveXML('test.xml');

Cualquier cosa avisa.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 09/01/2013, 18:28
 
Fecha de Ingreso: diciembre-2012
Mensajes: 17
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Errores en integracion XML con PHP

Muchas gracias, corregí los errores.

Una vez realizada la conexion sin errores como hago un formulario para el buscador de hoteles que me permita meter esos datos en un select?, no se muy bien por donde empezar.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:12.