Foros del Web » Programando para Internet » PHP »

xml_parser se come los ampersand

Estas en el tema de xml_parser se come los ampersand en el foro de PHP en Foros del Web. Hola a todos, estoy tratando de parsear un XML que en una de sus claves contiene un valor que a su vez contiene un ampersand ...
  #1 (permalink)  
Antiguo 13/11/2009, 11:11
Avatar de iDkInf  
Fecha de Ingreso: junio-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 0
xml_parser se come los ampersand

Hola a todos, estoy tratando de parsear un XML que en una de sus claves contiene un valor que a su vez contiene un ampersand (&). El problema esta en que al obtener los datos del xml parseados, dicho ampersand ha desaparecido magicamente. Os pongo un ejemplo:

XML:
Código:
<clave>
  <clave2>
    <clave3>Yo & Tu</clave3>
  </clave2>
</clave>
PHP que uso para parsear el XML:
Código PHP:
        $aParser xml_parser_create'' );

        if( ! 
$aParser )
            return 
false;

        
xml_parser_set_option$aParserXML_OPTION_TARGET_ENCODING'UTF-8' );
        
xml_parser_set_option$aParserXML_OPTION_CASE_FOLDING);
        
xml_parser_set_option$aParserXML_OPTION_SKIP_WHITE);
        
xml_parse_into_struct$aParser$sXml$aXmls );
        
xml_parser_free$aParser ); 
$sXml contiene el código XML indicado arriba.

Pues bien, el valor de la clave3 que deberia ser "Yo & Tu" se muestra como "Yo Tu", y no se realmente que ocurre. Muchas gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 13/11/2009, 11:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: xml_parser se come los ampersand

eso, es porque el XML de entrada esta mal... ya que los & deben ser convertidos en &amp;

y eso, con cualquier carácter especial del XML...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/11/2009, 11:22
Avatar de iDkInf  
Fecha de Ingreso: junio-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: xml_parser se come los ampersand

La gracia esta en que en cualquiera de las dos formas (& ó &amp;) se lo sigue comiendo... y no entiendo porque la verdad. A ver si a alguien se le ocurre como solucionarlo. Un saludo y mil gracias.
  #4 (permalink)  
Antiguo 14/11/2009, 11:57
Avatar de gilbeRt_fox  
Fecha de Ingreso: octubre-2008
Ubicación: Asunción
Mensajes: 16
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: xml_parser se come los ampersand

utiliza CDATA!

Ej.:

Código:
<![CDATA[<saludo>Hola, mundo!</saludo>]]>
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 21:55.