SimpleXML - Inserire DTD e intestazione

sunlightbanana

Utente Attivo
26 Ott 2011
96
0
6
Salve,
tramite SimpleXML creo automaticamente una pagina XML con varie informazioni.
Il problema è che non so come inserire queste due voci:
Codice:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xml SYSTEM "semantica.dtd">
Riguardo l'intestazione mi da problemi per via del punto di domanda.
Riguardo la DOCTYPE non so proprio come fare.

Chiedo il vostro aiuto e vi ringrazio per la cortesia.
 

MarcoGrazia

Utente Attivo
15 Dic 2009
686
8
18
58
Udine
www.stilisticamente.com
La via migliore è usare le funzioni DOM e non le SimpleXML che come dice il nome sono semplici.
In realtà non c'è nulla di complicato in ciò che vuoi fare tu :)
PHP:
$dom = new DOMDocument('1.0', 'utf-8');

//  Oppure crei con simple l'intestazione così:
$sxe = simplexml_load_string("<?xml version='1.0' encoding='utf-8'><!DOCTYPE xml SYSTEM "semantica.dtd">");
Però ricordo che anni fa bazzicando proprio con xml e xslt alla fine dovetti ricorrere al DOM è meno intuitivo all'inizio ma alla fine ripaga.
 

sunlightbanana

Utente Attivo
26 Ott 2011
96
0
6
è proprio la risposta che temevo :)
nel senso che sapevo mi sarebbe stato consigliato l'utilizzo del DOMDocument.
Proverò allora ad approfondire il suo utilizzo e ti ringrazio per la risposta
 

sunlightbanana

Utente Attivo
26 Ott 2011
96
0
6
Per chi dovesse avere un problema simile, ho risolto così:

Codice:
$xml = new DOMDocument("1.0","utf-8");
$doctype = new DOMImplementation();	
$xml->appendChild($doctype->createDocumentType("xml","","semantica.dtd"));