Estoy usando simpleXML para agregar un nodo hijo dentro de uno de mis documentos XML ... cuando hago una print_r en mi objeto simpleXML, el <
todavía se muestra como un <
en la fuente de la vista. Sin embargo, después de guardar este objeto de nuevo a XML utilizando DOMDocument, la <
se convierte en <
y la >
se convierte en >
Cómo evitar que DOMDocument guarde <as & lt
Cualquier ideas sobre cómo cambiar este comportamiento? Intenté agregar dom->substituteEntities = false;
, pero esto no sirvió.
//Convert SimpleXML element to DOM and save
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = false;
$dom->substituteEntities = false;
$dom->loadXML($xml->asXML());
$dom->save($filename);
Aquí es donde estoy usando el <:
$new_hint = '<![CDATA[' . $value[0] . ']]>';
$PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', $new_hint);
El problema, es que estoy usando XML sencilla para iterar a través de ciertos nodos del documento XML, y si un atributo coincide con una identificador dado, se agrega un nodo secundario específico con CDATA. A continuación, después de todo processsing, ahorro el XML de nuevo a archivo usando DOMDocument, que es donde el < se convierte en & lt, etc.
Aquí hay un enlace a toda mi archivo de clase, para que pueda tener una mejor idea de lo que estoy tratando de lograr Específicamente, consulte el método hint_insert() en la parte inferior.
''
MvanGeest
Estoy tratando de lograr agregar una etiqueta CDATA ... Revisar la publicación original para el código actualizado – ThinkingInBits
¡Gracias por votar! La etiqueta CDATA es necesaria (a menos que escape) en xml cuando tiene '<' and '>' dentro de un nodo. Igual que XHTML ... – xandercoded