utilizzo la classe DOMDocument per leggere/scrivere file xml ma non è consentito per via della conversione 'UTF-8' in caso di caratteri accentati ecc. Impostando la dichiarazione
$xmlDoc=new DOMDocument('1.0','ISO-8859-1'); genera l'errore:
DOMDocument::saveXML() [domdocument.savexml]: output conversion failed due to conv error, bytes 0xE8 0xE8 0xE8 0x30
Come risolvere?
Codice PHP:
<?php
//$xmlDoc = new DOMDocument('1.0', 'UTF-8');
/* <?xml version="1.0" encoding="iso-8859-1"?> */
$xmlDoc=new DOMDocument('1.0','ISO-8859-1');
/*
Aggiungo la root, una sola!!!
La riga che segue crea un nodo e lo chiama root
*/
$xmlRoot=$xmlDoc->createElement('root');
// aggiungo il nodo al documento
$xmlDoc->appendChild($xmlRoot);
// aggiungo un nodo "persone" a root
$xmlPersone=$xmlDoc->createElement('persone');
$xmlRoot->appendChild($xmlPersone);
// aggiungo a "persone" alcuni nodi "persona" con dei figli
for ($i=0;$i<3;++$i)
{
$xmlPersona=$xmlDoc->createElement('persona');
$xmlPersone->appendChild($xmlPersona);
$xmlNome=$xmlDoc->createElement('nome','èèè'.$i);
$xmlPersona->appendChild($xmlNome);
$xmlCognome=$xmlDoc->createElement('cognome','cognome'.$i);
$xmlPersona->appendChild($xmlCognome);
$xmlIndirizzo=$xmlDoc->createElement('indirizzo','indirizzo'.$i);
// $xmlIndirizzo->appendChild($xmlIndirizzo);
}
// Converto in stringa il documento creato
$out=$xmlDoc->saveXML();
$xmlDoc->save('from_dom.xml'); // salva su file
header ("content-type: text/xml"); // visualizza su browser
$out=$xmlDoc->saveXML();
print $out;
?>