Il parser DOM built-in permette di elaborare documenti XML in PHP.
Il DOM XML Parser
Il parser DOM è un parser ad albero.
Guardate il seguente frazione documento XML:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
Il DOM vede l'XML di cui sopra come una struttura ad albero:
- Livello 1: documento XML
- Elemento radice:: Livello 2 <from>
- Livello 3: elemento di testo: "Jani"
Installazione
Le funzioni DOM parser fanno parte del core di PHP. Non è necessaria nessuna installazione per usare queste funzioni.
Un file XML
Il file XML di seguito verrà utilizzato nel nostro esempio:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Caricare e output XML
Vogliamo inizializzare il parser XML, caricare il xml, e l'uscita è:
Esempio
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
L'output del codice precedente sarà:
Tove Jani Reminder Don't forget me this weekend!
Se si seleziona "View source" nella finestra del browser, si vedrà il seguente codice HTML:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
L'esempio sopra crea un DOMDocument-Object e carica il XML da "note.xml" in esso.
Poi il saveXML() la funzione mette il documento XML interna in una stringa, in modo che possiamo output.
Looping tramite XML
Vogliamo inizializzare il parser XML, caricare il file XML, e un ciclo tra tutti gli elementi del <note> elemento:
Esempio
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
L'output del codice precedente sarà:
#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
Nell'esempio di cui sopra si vede che ci sono i nodi di testo vuoti tra ogni elemento.
Quando XML genera, spesso contiene white-spazi tra i nodi. Il parser DOM XML tratta questi elementi come normali, e se non siete a conoscenza di loro, a volte causare problemi.
Se volete saperne di più sul DOM XML, si prega di visitare il nostro tutorial di XML .