Foros del Web » Programando para Internet » PHP »

Pasar string XML a Array para PHP

Estas en el tema de Pasar string XML a Array para PHP en el foro de PHP en Foros del Web. Necesito ayuda estoy atascado El tema es que estoy haciendo una lista desplegable de opciones para un formulario. Estas opciones las recibo desde un webservice, ...
  #1 (permalink)  
Antiguo 14/04/2009, 08:45
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Pasar string XML a Array para PHP

Necesito ayuda estoy atascado

El tema es que estoy haciendo una lista desplegable de opciones para un formulario. Estas opciones las recibo desde un webservice, y se supone que me envian de vuelta un string con formato XML y codificación ISO-8859-1 para utk-16. Yo conecto
bien al webservice y veo la respuesta, ahora bien, al hacer echo sobre
la variable donde se guarda la respuesta solo me muestra 'Array', y si
en vez de echo lo muestro mediante un var_dump me muestra la respuesta
del webservice pero sin las etiquetas XMl.¿Cual es la diferencia entre una forma d mostrarla y otra?
Por otro lado si intento crear un fichero XML 'a capon' y guardar ahi
la respuesta de la variable

$fp=fopen('prueba.xml',"w");
fwrite($fp,$result);
fclose($fp);

al intentar abrir este fichero me dice que no puede verse con el
estilo, pero estoy en un php de pruebas al que no asocio ningun
CSS.¿Porque puede ser?

Gracias por vuestro interés
  #2 (permalink)  
Antiguo 14/04/2009, 10:16
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Pasar string XML a Array para PHP

Si la respuesta es Array deberás recorrerla con un foreach y transformarla en xml, agregándole los tags en caso de ser necesario. Incluso tendrás que establecer un header("Content-type: text/xml");
  #3 (permalink)  
Antiguo 14/04/2009, 12:19
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: Pasar string XML a Array para PHP

Cita:
Iniciado por Panino5001 Ver Mensaje
Si la respuesta es Array deberás recorrerla con un foreach y transformarla en xml, agregándole los tags en caso de ser necesario. Incluso tendrás que establecer un header("Content-type: text/xml");
Gracias por la ayuda, sin embargo la respuesta se supone que es un String con formato XML, creo que lo de array puede ser que el String venga en un array asociativo o algo así, tengo que estudiarlo mas a fondo pero creo que es por ahi por donde van los tiros. De todos modos si consigo sacar los datos uno por uno como para crearme el xml poniendole los tags, la cabecera y todo, no necesitaría siquiera crear el xml, ya que podría usarlos directamente en mi lista de selección.
  #4 (permalink)  
Antiguo 14/04/2009, 12:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Pasar string XML a Array para PHP

Cita:
la variable donde se guarda la respuesta solo me muestra 'Array', y si
en vez de echo lo muestro mediante un var_dump me muestra la respuesta
del webservice pero sin las etiquetas XMl.
Sin ver tu codigo, supongo que la matriz (Array) que obtienes corresponde a cada linea del XML leido.

Las etiquetas HTML (y XML) no se muestran en el navegador a menos que codifiques < como &lt; y > como &gt;

Podrias intentar:

Código php:
Ver original
  1. foreach($resultado as $res)
  2.     echo $res . "\n";

Al ver el codigo fuente de tu navegador, seguramente todo estara ahi como lo esperas.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 14/04/2009, 13:06
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Pasar string XML a Array para PHP

Cita:
se supone que es un String con formato XML
Si esto fuera así, var_dump te mostraría los tags xml, cosa que decís que no hace.
Deberías probar algo así y ver si te sirven los valores de $k, los de $v, o ambos, para lograr tu objetivo.

Código PHP:
<?php
foreach($respuesta as $k=>$v){
    echo 
$k.'-'.$v.'<br />';
}
?>
  #6 (permalink)  
Antiguo 14/04/2009, 14:36
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Pasar string XML a Array para PHP

books.xml:
Código:
<?xml version="1.0" ?> 
 <books>
 <book>
  <author>Jack Herrington</author> 
  <title>PHP Hacks</title> 
  <publisher>O'Reilly</publisher> 
  </book>
 <book>
  <author>Jack Herrington</author> 
  <title>Podcasting Hacks</title> 
  <publisher>O'Reilly</publisher> 
  </book>
</books>
ejemplo:
Código PHP:
<?php
$file
="books.xml";
$data =  file_get_contents($file); 
$xml simplexml_load_string($data);

// ejemplo
foreach ($xml->book as $book){
echo 
"Author: ".$book->author."<br />";
echo 
"Title: ".$book->title."<br />";
echo 
"Publisher: ".$book->publisher."<br />";
echo 
"<hr />";
}
?>
te conviene mas hacerlo de esta forma por que algunos hosting bloquean el fopen...
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
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 18:24.