Foros del Web » Programando para Internet » PHP »

agregar CDATA a xml existente

Estas en el tema de agregar CDATA a xml existente en el foro de PHP en Foros del Web. Saludos, tengo una tabla mysql en la que uno de los campos es una cadena xml, en esta tabla ya hay como 500 registros, lo ...
  #1 (permalink)  
Antiguo 06/11/2012, 11:06
Avatar de hmvr414  
Fecha de Ingreso: marzo-2011
Ubicación: Santiago de Cali, Colombia
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 16
agregar CDATA a xml existente

Saludos,

tengo una tabla mysql en la que uno de los campos es una cadena xml, en esta tabla ya hay como 500 registros, lo que necesito es tomar la cadena xml y agregarle <![CDATA[]] en todos los campos para no tener problema con caracteres especiales dentro del xml:

Cadena actual:
Código XML:
Ver original
  1. <filas>
  2. <campo>contenido1</campo>
  3. <campo>contenido2</campo>
  4. <campo>contenido3</campo>
  5. </filas>

Conversion requerida:
Código XML:
Ver original
  1. <filas>
  2. <campo><![CDATA[contenido1]]</campo>
  3. <campo><![CDATA[contenido2]]</campo>
  4. <campo><![CDATA[contenido3]]</campo>
  5. </filas>

alguien tiene alguna idea de como puedo hacer lograr esto, y hacerlo en todos los registros existentes?


gracias.
  #2 (permalink)  
Antiguo 06/11/2012, 11:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: agregar CDATA a xml existente

Me imagino que no has leído la referencia de SimpleXML, ¿verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/11/2012, 11:20
Avatar de hmvr414  
Fecha de Ingreso: marzo-2011
Ubicación: Santiago de Cali, Colombia
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: agregar CDATA a xml existente

Hola,

Cita:
Iniciado por pateketrueke Ver Mensaje
Me imagino que no has leído la referencia de SimpleXML, ¿verdad?
con SimpleXML cargo el contenido
Código PHP:
Ver original
  1. $a = simplexml_load_string($modeloRespuesta->respuesta);
  2.       if (!$a) {
  3.             echo "<PRE>{$modeloRespuesta->respuesta}Fallo carga XML\n";
  4.             foreach(libxml_get_errors() as $error) {
  5.                 echo "\t", $error->message;
  6.             }
  7.         }
  8.      echo "</PRE>";

pero falla porque dentro de la cadena hay caracteres html que no son validos dentro del xml, por eso necesito agregar CDATA.
  #4 (permalink)  
Antiguo 06/11/2012, 11:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: agregar CDATA a xml existente

Oh... vaya, no dijiste que el problema lo tenías al procesar el XML.

Bien, pues podrías usar expresiones regulares o de plano un simple str_replace(), usa tu ingenio.
Código PHP:
$foo str_replace('<tag>''<tag><![CDATA['$foo);
$foo str_replace('</tag>'']]</tag>'$foo); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: cdata, mysql, 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 20:25.