Since php 5.2.7 release, this function work properly with empty content :
Function call : dom_document->createCDATASection("");
- php < 5.2.7 will return an empty node like : <MyNode></MyNode>
- php >= 5.2.7 will return an empty node with CDATA like : <MyNode><![CDATA[]]></MyNode>
it can make problem if you make a xsd validation after it with node cannot be empty
DomDocument::create_cdata_section
(PHP 4 >= 4.1.0)
DomDocument::create_cdata_section — Crear un nuevo nodo cdata
Descripción
domcdata DomDocument::create_cdata_section
( string
$content
)Esta función devuelve una nueva instancia de la clase DomCData. El contenido de el cdata es el valor de el parámetro pasado. Este nodo no se mostrará en el documento a no ser que sea insertado con (p.e.j.) domnode_append_child().
El valor de retorno es FALSE si ocurre un error.
Véase también domnode_append_child(), domdocument_create_element(), domdocument_create_text(), domdocument_create_attribute(), domdocument_create_processing_instruction(), domdocument_create_entity_reference(), y domnode_insert_before().
barthelemy dot seb at gmail dot com
05-Jan-2009 09:55
webmaster at freecaradverts dot com
31-Mar-2004 09:55
Beware if you're using the PEAR package XML_BEAUTIFIER. This causes the DOM processor to recognise any CDATA section nodes as text nodes. Better just to stick with the formatting option when using dump_file()......
laurent at rezoloco dot com
03-Sep-2003 04:05
add CDATA SECTION with xml content in a xml document
$doc_in=domxml_open_mem('<?xml version="1.0"?><paragraphe></paragraphe>'));
$root=$doc_in->document_element ();
$node_txt_para=$root->new_child("txt_para","");
$cdata=$doc_in->create_cdata_section("<root><child num=1></child></root>");
$node_txt_para->append_child($cdata);
$dump=$doc_in->dumpmem();
print($dump);
