Foros del Web » Programación para mayores de 30 ;) » Programación General »

problema al leer xml creado desde php

Estas en el tema de problema al leer xml creado desde php en el foro de Programación General en Foros del Web. Hola a todos, espero que algún usuario avanzado con php me pueda ayudar. Tengo un script que crea un archivo de texto y al crearlo ...
  #1 (permalink)  
Antiguo 11/04/2008, 05:42
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
problema al leer xml creado desde php

Hola a todos, espero que algún usuario avanzado con php me pueda ayudar. Tengo un script que crea un archivo de texto y al crearlo le pongo extension xml. Aca va el codigo

$File = miArchivo.xml";
$Handle = fopen($File, 'w');
$Data ="<Texto>texto aquí texto texto texto <br /><br />\r\n</Texto>";
fwrite($Handle, $Data);
fclose($Handle);

Hasta aquí todo bien y creo el xml que luego lo leo con flash. El problema es que el archivo generado cuando lo quiero abir con el explorer me dice:
The XML page cannot be displayed An invalid character was found in text content. Error y si contiene caracteres como la ñ y/o acentos el flash me muestra caracteres raros.

Lo curioso es que si abro con dreamweaver el archivo xml generado desde php y lo grabo sin hacerle ningun cambio este cambia de tamaño en algunos bytes y ahi ya funciona todo bien y si lo abro con el explorer ya me muestra el xml.

En resumen creo que el archivo que genero con php al parecer no cumple con algun formato expecifico de xml

La pregunta es si hay alguna forma de crear el archivo xml y que el mismo funcione correctamente cuando lo abro con el explorer

Espero se entienda
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
  #2 (permalink)  
Antiguo 11/04/2008, 09:03
 
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 75
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: problema al leer xml creado desde php

Que tál?? en script de armado de XML estas cometiendo 2 errores y por eso no lo interpreta Internet Explorer:
  1. La primer linea de un archivo XML debe ser su cabecera correspondiente, un ejemplo seria:
    $Data = "<?xml version="1.0" ?>";
  1. Antes de ingresar cualquier "TAG" debe existir un TAG general del fichero, un ejemplo seria:
    $Data .= "<xml>";
    //Cuando termino de escribir todo
    $Data .= "</xml>";

Por último comentarte que PHP tiene extensiones para la lectura/escritura de XML que te pueden hacer el trabajo más fácil y rápido, como ser SimpleXML y DOM.
Espero sea de utilidad.

*************************
www.jomico.com.ar
*************************
  #3 (permalink)  
Antiguo 11/04/2008, 09:37
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
Re: problema al leer xml creado desde php

Hola, gracias por responder. Un ejemplo del archivo que genero es el siguiente:

<body>
<img align='left' src='images/s1.jpg' hspace='-1' vspace='-1'/>
<A HREF="javascript:imagen('control/_argentinapodesta/imagenes/propiedades_alquiler/0001163/0000351b.jpg')">
<img align='right' src='control/_argentinapodesta/imagenes/propiedades_alquiler/0001163/0000351.jpg' width='100' height='64' hspace='10' vspace='20'/></A>

<titulo>Almafuerte 1539</titulo>
<img align='left' src='images/s2.jpg' width='357' height='7' hspace='0' vspace='5'/><br />
<descripcion>
año ECHAGÜE 4149 – B° PALMAR - VENTA IMPECABLE!! Doble ingreso – living – comedor – cocina – cochera – Sala de estar muy amplia – 2 dormitorios – baño – quincho – patio con césped – terraza. Todos los servicios<br />
</descripcion>
<img align='right' src='images/s3.jpg' width='429' height='10' hspace='0' vspace='10'/>
<br /><br />
</body>

Si lo abro con dreanweaver y lo guardo automaticamente cambia el tamaño a unos bytes mas y ya me funciona bien. De lo contrario cuando muestro el xml en el flash los caracteres como la ñ me salen todos mal.

Lo mismo pasa si creo desde 0 un xml con el notepad

Saludos
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
  #4 (permalink)  
Antiguo 11/04/2008, 09:48
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 11 meses
Puntos: 24
Re: problema al leer xml creado desde php

Para que los caracteres los interprete bien, el fichero xml debe indicar el juego de caracteres que utiliza.
La mayoria de los feeds y librerias trabajan con codificacion utf-8, aunque los editores que muestran las ñ tal cual suelen guardar los ficheros con codificacion ISO-8859-1.
Así pues, como decía jonathan_miguel puedes intentar incluir la codificación en la primera línea del fichero xml. Ejemplos:

<?xml version="1.0" encoding="ISO-8859-1"?>

o

<?xml version="1.0" encoding="UTF-8"?>
__________________
Grupos de Música
Pop Music Stars
  #5 (permalink)  
Antiguo 11/04/2008, 10:21
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
Re: problema al leer xml creado desde php

Hola, gracias por sus respuestas, es rarisimo el problema ya probe con <?xml version="1.0" encoding="ISO-8859-1"?> al principio del archivo y con <xml> y </xml> pero siempre hace lo mismo. Solo se soluciona si lo abro con dranweaver y lo vuelvo a cerrar. Para sacarme la duda lo probe en varios servidores y es lo mismo.

Al parecer cuando creo los archivos xml con php me los crea con algun formato incompatible. Tambien probe crearlos con el notepad y me da lo mismo, solo me muestra caracteres estándares y los caracteres como la ñ me los muestra mal.
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
  #6 (permalink)  
Antiguo 11/04/2008, 11:00
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
Re: problema al leer xml creado desde php

Hola, ya solucione el problema.
Resulta que buscando en la web encontre que poniendo en el primer fotograma del flash esta linea System.useCodepage = true;

Ahora ya me toma perfectamente los acentos y ñ.

No hizo falta poner <?xml version='1.0' encoding='ISO-8859-1'?> en los xml

Lo que quedo sin resolver es porque cuando lo abria condreanweaver y lo cerraba funcionaba bien. Calculo que le cambiaba el formato al documento debido a que aumentaba en bites el tamaño del mismo pero visiblemente no se nota
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
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 15:36.