read - domdocument cdata php
PHP: cómo manejar<![CDATA[con SimpleXMLElement? (4)
El LIBXML_NOCDATA
es el tercer parámetro opcional de la función simplexml_load_file()
. Esto devuelve el objeto XML con todos los datos CDATA convertidos en cadenas.
$xml = simplexml_load_file($this->filename, ''SimpleXMLElement'', LIBXML_NOCDATA);
echo "<pre>";
print_r($xml);
echo "</pre>";
Noté que al usar SimpleXMLElement
en un documento que contiene esas etiquetas CDATA, el contenido siempre es NULL
. ¿Cómo puedo solucionar esto?
Además, lo siento por enviar spam sobre XML aquí. He estado intentando que un script basado en XML funcione durante varias horas ...
<content><![CDATA[Hello, world!]]></content>
Intenté el primer golpe en Google si buscaba "cdata de SimpleXMLElement", pero eso no funcionó.
Esto está funcionando perfecto para mí.
$content = simplexml_load_string(
$raw_xml
, null
, LIBXML_NOCDATA
);
Esto hizo el truco para mí:
echo trim($entry->title);
Probablemente no estés accediendo correctamente. Puede sacarlo directamente o echarlo como una cadena. (en este ejemplo, el casting es superfluo, ya que echo lo hace de todos modos)
$content = simplexml_load_string(
''<content><![CDATA[Hello, world!]]></content>''
);
echo (string) $content;
// or with parent element:
$foo = simplexml_load_string(
''<foo><content><![CDATA[Hello, world!]]></content></foo>''
);
echo (string) $foo->content;
Puede tener mejor suerte con LIBXML_NOCDATA
:
$content = simplexml_load_string(
''<content><![CDATA[Hello, world!]]></content>''
, null
, LIBXML_NOCDATA
);