Foros del Web » Programando para Internet » PHP »

Bucle con datos xml usando foreach

Estas en el tema de Bucle con datos xml usando foreach en el foro de PHP en Foros del Web. TENGO EL SIGUIENTE XML @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código XML: Ver original <?xml version = "1.0" ?> - <reserva accion = "resultado" > - <resultados > - ...
  #1 (permalink)  
Antiguo 05/07/2010, 14:29
GNU
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Bucle con datos xml usando foreach

TENGO EL SIGUIENTE XML
Código XML:
Ver original
  1. <?xml version="1.0" ?>
  2. - <reserva accion="resultado">
  3. - <resultados>
  4. - <cotizados>
  5. - <articulo ocupacion="h1">
  6.   <id_articulo>2917</id_articulo>
  7.   <nombre_articulo>DOBLE 2 PAXNIÑO</nombre_articulo>
  8.   <id_resultado>2423713</id_resultado>
  9.   <central_reservas />
  10.   <descripcion />
  11.   <id_zona>62</id_zona>
  12.   <nombre_zona>Castellón</nombre_zona>
  13.   <provincia>CASTELLÓN</provincia>
  14.   <poblacion>CASTELLON</poblacion>
  15.   <longitud>-0.043400</longitud>
  16.   <latitud>39.983501</latitud>
  17.   <id_prestatario>21931</id_prestatario>
  18.   <nombre_prestatario>JAIME I</nombre_prestatario>
  19.   <direccion_prestatario>RONDA MIJARES, 67</direccion_prestatario>
  20.   <cp_prestatario />
  21.   <provincia_prestatario>CASTELLÓN</provincia_prestatario>
  22.   <categoria>3</categoria>
  23.   <cotizacion>92.92</cotizacion>
  24.   <disponible>1</disponible>
  25.   <foto_prestatario>http://www.miweb.com/dominios/empresa/fotos/21931_1.jpg</foto_prestatario>
  26.   <descripcion_prestatario>edificio moderno, renovado en 2004 situado en el centro comercial de castellón, a escasos 1000 metros del corte inglés y cercano a la universidad jaime i fáciles accesos desde la ap-7 a valencia y barcelona dispone de 89 habitaciones equipadas con tv, teléfono, aire acondicionado, caja fuerte y baño completo facilidades del hotel: restaurante, bar, salones, fitness, parkinglos días 24 y 31 de diciembre de 2007, el restaurante de nuestro hotel estará cerrado</descripcion_prestatario>
  27. - <suplementos>
  28. - <suplemento regimen="1">
  29.   <id_suplemento tipo="obligatorio">16082</id_suplemento>
  30.   <nombre_suplemento>Sólo alojamiento</nombre_suplemento>
  31.   <suplemento_regimen_abreviado>SA</suplemento_regimen_abreviado>
  32.   <descripcion />
  33.   </suplemento>
  34.   </suplementos>
  35.   <tipo_categoria>hotel</tipo_categoria>
  36.   </articulo>
  37. - <articulo ocupacion="h2">
  38.   <id_articulo>2917</id_articulo>
  39.   <nombre_articulo>DOBLE 2 PAXNIÑO</nombre_articulo>
  40.   <id_resultado>2423713</id_resultado>
  41.   <central_reservas />
  42.   <descripcion />
  43.   <id_zona>62</id_zona>
  44.   <nombre_zona>Castellón</nombre_zona>
  45.   <provincia>CASTELLÓN</provincia>
  46.   <poblacion>CASTELLON</poblacion>
  47.   <longitud>-0.043400</longitud>
  48.   <latitud>39.983501</latitud>
  49.   <id_prestatario>21931</id_prestatario>
  50.   <nombre_prestatario>JAIME I</nombre_prestatario>
  51.   <direccion_prestatario>RONDA MIJARES, 67</direccion_prestatario>
  52.   <cp_prestatario />
  53.   <provincia_prestatario>CASTELLÓN</provincia_prestatario>
  54.   <categoria>3</categoria>
  55.   <cotizacion>92.92</cotizacion>
  56.   <disponible>1</disponible>
  57.   <foto_prestatario>http://www.miweb.com/dominios/empresa/fotos/21931_1.jpg</foto_prestatario>
  58.   <descripcion_prestatario>edificio moderno, renovado en 2004 situado en el centro comercial de castellón, a escasos 1000 metros del corte inglés y cercano a la universidad jaime i fáciles accesos desde la ap-7 a valencia y barcelona dispone de 89 habitaciones equipadas con tv, teléfono, aire acondicionado, caja fuerte y baño completo facilidades del hotel: restaurante, bar, salones, fitness, parkinglos días 24 y 31 de diciembre de 2007, el restaurante de nuestro hotel estará cerrado</descripcion_prestatario>
  59. - <suplementos>
  60. - <suplemento regimen="1">
  61.   <id_suplemento tipo="obligatorio">16082</id_suplemento>
  62.   <nombre_suplemento>Sólo alojamiento</nombre_suplemento>
  63.   <suplemento_regimen_abreviado>SA</suplemento_regimen_abreviado>
  64.   <descripcion />
  65.   </suplemento>
  66.   </suplementos>
  67.   <tipo_categoria>hotel</tipo_categoria>
  68.   </articulo>
  69.   </cotizados>
  70. - <resumen>
  71.   <divisa moneda="Euro" codigo="EUR" valor="1.00" />
  72.   <articulos_cotizados>40</articulos_cotizados>
  73.   <id_zona_pais>1</id_zona_pais>
  74.   <nombre_zona_pais>ESPAÑA</nombre_zona_pais>
  75.   <id_zona />
  76.   <nombre_zona />
  77.   <poblacion>castellon</poblacion>
  78.   <provincia />
  79.   <categoria />
  80.   <regimen />
  81.   <fecha_entrada>29/07/2010</fecha_entrada>
  82.   <numero_noches>2</numero_noches>
  83.   <fecha_salida>31/07/2010</fecha_salida>
  84.   <prestatarios_mostrados>4</prestatarios_mostrados>
  85. - <ocupaciones>
  86. - <ocupacion id="h1">
  87.   <adultos numero="2" />
  88.   <ninos numero="1" />
  89.   </ocupacion>
  90. - <ocupacion id="h2">
  91.   <adultos numero="2" />
  92.   <ninos numero="1" />
  93.   </ocupacion>
  94.   </ocupaciones>
  95.   <tiempo_consulta>7.55 segundos</tiempo_consulta>
  96.   </resumen>
  97.   </resultados>
  98.   </reserva>

Y este es el codigo php que estoy usando para jalar los array xml pero me salen repetidos los tipos de habitacion lo que quiero es relacionar los hoteles con los tipos de habitacion de acuerdo al Id del prestatario que es el id del hotel como pueden ver en el xml.

Código PHP:
Ver original
  1. $xml = "login=milog";
  2.             $xml .= "&pass=yaxayxb";
  3.             $xml .= "&dominio=serus";
  4.             $xml .= "&owb_modulo=wse";
  5.             $xml .= "&owb_vista=reservasss";
  6.             $xml .= "&xml_reserva_ws=";
  7.             $xml2 = '<?xml version="1.0" encoding="utf-8" standalone="yes"?>
  8. <reserva accion="consulta">
  9.     <fecha_entrada>'.$fechaen_val.'</fecha_entrada>
  10. <noches>'.date_diff($fechaen_val, $fechasal_val) .'</noches>
  11. <id_tipo_articulo_clase>1</id_tipo_articulo_clase>
  12. <id_tipo_articulo_superclase>1</id_tipo_articulo_superclase>
  13. <id_zona_pais>'.$valorbusca.'</id_zona_pais>
  14. <id_zona>'.$valorbusc.'</id_zona>
  15. <poblacion>'.$valorprov.'</poblacion>
  16. <provincia></provincia>
  17. <nombre_comercial></nombre_comercial>
  18. <categoria>0</categoria>
  19. <suplemento_filtro_1>0</suplemento_filtro_1>
  20.  
  21. <ocupaciones>
  22. <ocupacion>
  23. <adultos numero="'.$npersonas.'"/>
  24. <ninos numero="0"/>
  25. </ocupacion>
  26. </ocupaciones>
  27. </reserva>';
  28.            
  29.             $xml .= urlencode($xml2);
  30.             $length = strlen($xml);
  31.            
  32.  
  33.             //XML Connection
  34.             $fp = @fsockopen("www.miweb.com", 80);
  35.  
  36.             fputs($fp, "POST http://www.miwebcom/miwbooking/index.php HTTP/1.0\nUser-Agent: PHP XMLRPC
  37.             1.1\r\n");
  38.             fputs($fp, "Host: www.miweb.com/owbooking/index.php\n");
  39.             fputs($fp, "Content-Type: application/x-www-form-urlencoded\n");
  40.             fputs($fp, "Content-Length: " . $length . "\n");
  41.             fputs($fp, "\n");
  42.             fputs($fp, $xml);
  43.             $respuesta = "";
  44.             while(!feof($fp)) $respuesta .= fgets($fp);
  45.             fclose ($fp);
  46.             $xml_response = substr($respuesta, strpos($respuesta, "<?xml"));
  47.             $xml_response = str_replace("\r", "", $xml_response);
  48.             $xml_response = str_replace("\n", "", $xml_response);
  49.             $xml_response = str_replace("\t", "", $xml_response);
  50.             $xml_response = trim($xml_response);
  51.          
  52.             $xml = new SimpleXMLElement($xml_response); //Simple XML is available from php5
  53.   foreach ($xml->resultados->cotizados->articulo as $sarticulo) {
  54.  
  55.        $variable_nom_pres[] = '<tr><td colspan="2" valign="top" ><form name="infotel" action="'.site_url('solole_dispo').'" method="post"><input name="nombre_prest" id="nombre_prest" type="hidden" value="'.$sarticulo->nombre_prestatario[0].'" /><input style="background-color:#FFFFFF; border:hidden; font-family:Trebuchet MS; font-weight:bold; color:#993300" type="submit" value="'.$sarticulo->nombre_prestatario[0].'" /></form></td></tr>'.'<tr><td valign="top"><img src="'.$sarticulo->foto_prestatario[0].'" width="150" /></td><td valign="top">'.$sarticulo->descripcion_prestatario[0].'</td></tr>';
  56.        
  57.         $nombre_articulo .= $sarticulo->nombre_articulo[0].'<br>';
  58.         $precio_articulo .= $sarticulo->cotizacion[0].'<br>';
  59.  
  60.       }
  61.         $nom_pres =array_unique($variable_nom_pres);
  62.       foreach($nom_pres as $varpres){
  63.       echo $varpres.'<tr><td></td><td><table  cellpadding="5" cellspacing="5"  width="100%"><tr><td>'.$nombre_articulo.'</td><td>'.$precio_articulo.'</td></tr></table></td></tr>';
  64.       }

Última edición por GNU; 05/07/2010 a las 15:21 Razón: mas claridad

Etiquetas: bucle, foreach, xml
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:56.