Ciao a tutti,
Ho il seguente problema:
Ho creato un oggetto xml mediante simpleXml. Questo oggetto contiene un nodo con del del cdata. Una volta creato l'oggetto creo un nuovo DomDocument per creare un file correttamente formattato in una cartella del mio server. Nessun problema nella creazione, l'unica cosa è che mi va perso il cdata, o meglio dopo l'importazione in DOM il simbolo di apertura e chiusura del cdata (quindi rispettivamente < e >) vengono convertiti in entità html (ovvero < e > ) Prima dell'importazione non vi sono problemi.
Di seguito il codice php che importa l'oggetto simpleXml ($xmlOut) nel DOM...
questo mi crea:Codice PHP:$doc = new DOMDocument();
$doc->formatOutput = true;
$domnode = dom_import_simplexml($xmlOut);
$domnode->preserveWhiteSpace = false;
$domnode = $doc->importNode($domnode, true); $domnode = $doc->appendChild($domnode);
$saveXml = $doc->saveXML();
$fxml = fopen('prova.xml', 'w') or die("can't open file");
fwrite($fxml, $saveXml);
close($fxml);
(da notare il nodo <descrizione> che riporta erroneamente il cdata)Codice PHP:<?xml version="1.0"?>
<appuntamento id="14">
<data>21/11/2009</data>
<evento tipo="interno">prova</evento>
<descrizione>\<![CDATA[dfbadfgb]]\></descrizione>
</appuntamento>
Qua invece il codice che crea il nodo con il cdata:
Qualcuno mi sa dire dove sbaglio?Codice PHP:$nodeValue = "<![CDATA[".$postData."]]>";
$tmpNode = $xmlOut->addChild('descrizione', $nodeValue);
Grazie
Ciao
Roberto Pravisani

Rispondi quotando