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

Caracter < al imprimir CDATA con PHP

Estas en el tema de Caracter < al imprimir CDATA con PHP en el foro de Programación General en Foros del Web. Al actualizar un archivo xml con un item nuevo, estoy envolviendo el texto con CDATA. $descripcion = "<![CDATA[".$contenido."]]>"; Pero se me guarda asi: &lt;![CDATA[ Y ...
  #1 (permalink)  
Antiguo 21/08/2009, 17:43
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Caracter < al imprimir CDATA con PHP

Al actualizar un archivo xml con un item nuevo, estoy envolviendo el texto con CDATA.

$descripcion = "<![CDATA[".$contenido."]]>";

Pero se me guarda asi:

&lt;![CDATA[

Y no tengo ni idea de como reemplazar ese &lt; por su original '<' . O de como escapar el '<' con una barra.

Creo que los xsl pueden tener algo que ver con esto, aunque yo estoy aplicando uno y no produce cambios.

Xml es dificil al principio. Necesito ayuda.
  #2 (permalink)  
Antiguo 25/08/2009, 14:18
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Caracter < al imprimir CDATA con PHP

Van cinco dias y no me dan pista? Ayuda por favor.
  #3 (permalink)  
Antiguo 25/08/2009, 15:15
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Caracter < al imprimir CDATA con PHP

Me contesto yo. Consegui info.

Hay que usar DOM para imprimir <!CDATA[[

$nuevo_elemento = $xml->createElement( "titulo" );
$cdata = $xml->createCDATASection($titulo);
$nuevo_elemento->appendChild($cdata);

Se genera un nodo 'titulo'. Y se genera una seccion CDATA, que se anexa a 'titulo'.

Agregar un item nuevo con echo '<!CDATA[['; esta mal. Imprime mal el caracter '<'.
  #4 (permalink)  
Antiguo 26/08/2009, 12:18
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: Caracter < al imprimir CDATA con PHP

Haciendo echo '>' no puede ser que te lo modifique ! como lo estás guardando ?

__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 26/08/2009, 12:27
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Caracter < al imprimir CDATA con PHP

Lo estaba guardando con DOM, mediante una variable:

$descripcion = "<![CDATA[".$contenido."]]>";

$nuevo_tag_descripcion= $xml->createElement( "descripcion" );
$nuevo_tag_descripcion->appendChild($xml->createTextNode($descripcion));
$nuevo_item->appendChild( $nuevo_tag_descripcion );

Y me cambiaba el caracter < .

Pero ya encontre una funcion especifica de DOMxml:

$descripcion = $contenido;

$nuevo_tag_descripcion = $xml->createElement( "descripcion" );
$cdata = $xml->createCDATASection($descripcion);
$nuevo_tag_descripcion->appendChild($cdata);
$nuevo_item->appendChild( $nuevo_tag_descripcion );

Y consigo lo que queria:
<item>
<descripcion><!CDATA[[ ]]></descripcion>
</item>

Desde ya que te sorprendes porque si uno imprime directamente con 'echo' todo sale bien. Pero no era el caso, sino que habia DOM de por medio.
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:48.