Foros del Web » Programando para Internet » PHP »

Problema al recibir acentos de un Xml por medio de Php

Estas en el tema de Problema al recibir acentos de un Xml por medio de Php en el foro de PHP en Foros del Web. Buen dia, sucede que solicito unos datos de un xml por medio de php de la siguiente forma: Código PHP: <?php           $library  = new  SimpleXMLElement ...
  #1 (permalink)  
Antiguo 15/04/2012, 09:37
 
Fecha de Ingreso: septiembre-2010
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 2
Pregunta Problema al recibir acentos de un Xml por medio de Php

Buen dia, sucede que solicito unos datos de un xml por medio de php de la siguiente forma:

Código PHP:
<?php      
   
$library 
= new SimpleXMLElement('library.xml'nulltrue);

foreach( 
$library->mensaje as $mensaje){ $mensaje->titulo 

?>
y el archivo xml tiene la siguiente forma:

Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>

<mensajes>

<mensaje>
   
    <titulo><![CDATA[Rock & Roll]]></titulo>
    
  </mensaje>

y lo que me arroja es solo Rock, lo mismo pasa con las ñ, tildes, hasta con el signo +, lei que tocaba guardarlo con ISO-8859-1, pero no me funciona. Tambien lei lo del CDATA pero tampoco me funciona.

Muchas gracias.
  #2 (permalink)  
Antiguo 15/04/2012, 11:16
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: Problema al recibir acentos de un Xml por medio de Php

Si en el xml metes la información a pelo quiero decir si pones la ñ tal cual, luego te tocara convertir a sus entidades html:

Código PHP:
<?php htmlentities($mensaje->titulo); ?>

saber más sobre htmlentities


saludos,
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 15/04/2012, 12:19
Avatar de saseisa  
Fecha de Ingreso: agosto-2006
Mensajes: 329
Antigüedad: 18 años, 2 meses
Puntos: 9
Respuesta: Problema al recibir acentos de un Xml por medio de Php

como yo lo solucione igual con un xml fue usando esto
Código:
<?xml version="1.0" encoding="UTF8"?>
no se si ya lo intentaste asi
  #4 (permalink)  
Antiguo 15/04/2012, 14:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Problema al recibir acentos de un Xml por medio de Php

Que tal santris, deje el xml tal cual como lo tenia y le cambie el PHP a:

Código PHP:
<?php htmlentities($mensaje->titulo); ?>
Al escribir ñ me muestra ñ, con o sin CDATA.


Que tal saseisa, deje el php tal cual como lo tenia y cambie el xml a:

Código PHP:
<?xml version="1.0" encoding="UTF8"?>
Al escribir ñ me muestra ñ, con o sin CDATA.


Voy a leer mas sobre htmlentities, culaquier sugerencia es bienvenida.


Muchas gracias.
  #5 (permalink)  
Antiguo 15/04/2012, 14:40
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: Problema al recibir acentos de un Xml por medio de Php

Cita:
Iniciado por nilotrajano Ver Mensaje
Que tal santris, deje el xml tal cual como lo tenia y le cambie el PHP a:

Código PHP:
<?php htmlentities($mensaje->titulo); ?>
Al escribir ñ me muestra ñ, con o sin CDATA.


Que tal saseisa, deje el php tal cual como lo tenia y cambie el xml a:

Código PHP:
<?xml version="1.0" encoding="UTF8"?>
Al escribir ñ me muestra ñ, con o sin CDATA.


Voy a leer mas sobre htmlentities, culaquier sugerencia es bienvenida.


Muchas gracias.
ok, prueba poniendo bien UTF-8

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
__________________
Tu álbum de cromos online!!
  #6 (permalink)  
Antiguo 15/04/2012, 15:19
 
Fecha de Ingreso: septiembre-2010
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Problema al recibir acentos de un Xml por medio de Php

Que tal santris, probe poniendo bien

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
pero me sigue mostrando ñ cuando pongo ñ, tanto con o sin CDATA y con o sin htmlentities

Lo que hice fue convertir los acentos con otra funcion php, de esta manera:

Código PHP:
<?php

function limpiar($string)
{
    
$string trim($string);
    
$string str_replace(
        array(
'ñ'),
        array(
'ñ'),
        
$string
    
);
    return 
$string;
}
      
?>

y asi con todos los acentos, es mas tedioso y no creo que sea la mejor forma,

pero ya me funciono de esta manera, gracias de todas formas.

Etiquetas: cdata, encode, 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 00:46.