DOM XML PHP
- Pagina precedente Parser Expat XML
- Pagina successiva SimpleXML XML
Il parser DOM integrato rende possibile gestire documenti XML in PHP.
Cos'è DOM?
Il W3C DOM fornisce un set standard di oggetti per i documenti HTML e XML, nonché interfacce standard per accedere e operare su questi documenti.
Il W3C DOM è diviso in diverse parti (Core, XML e HTML) e diversi livelli (DOM Level 1/2/3):
- Core DOM - Definisce un set standard di oggetti per qualsiasi documento strutturato
- XML DOM - Definisce un set standard di oggetti per i documenti XML
- HTML DOM - Definisce un set standard di oggetti per i documenti HTML
Se desideri imparare di più sull'XML DOM, visita il nostro Corso XML DOM.
Parsing XML
Per leggere e aggiornare - creare e gestire - un documento XML, è necessario un parser XML.
Ci sono due tipi di parser XML fondamentali:
- Parser basato su albero: Questo tipo di parser converte il documento XML in una struttura ad albero. Analizza l'intero documento e fornisce un'API per accedere agli elementi delbero, come il Document Object Model (DOM).
- Parser basato su eventi: Considera il documento XML come una serie di eventi. Quando si verifica un evento specifico, il parser chiama una funzione per gestirlo.
Il parser DOM è un parser basato su albero.
Vediamo un frammento di documento XML sottostante:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>John</from>
L'XML DOM vede l'XML come una struttura ad albero:
- Livello 1: Documento XML
- Livello 2: Radice: <from>
- Livello 3: Elemento di testo: "John"
Installazione
Le funzioni del parser XML DOM sono parte integrante del core PHP. Non è necessario installare nulla per utilizzare queste funzioni.
File XML
Utilizzeremo il seguente file XML nel nostro esempio:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Promemoria</heading> <body>Non dimenticare l'incontro!</body> </note>
Caricamento e output XML
Dobbiamo inizializzare il parser XML, caricare l'XML e stamparlo:
Esempio
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
L'output del codice sopra è:
George John Promemoria Non dimenticare l'incontro!
Se visualizzate il codice sorgente nella finestra del browser, vedrete il seguente HTML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Promemoria</heading> <body>Non dimenticare l'incontro!</body> </note>
Nell'esempio sopra, è stato creato un oggetto DOMDocument e l'XML di "note.xml" è stato caricato in questo oggetto documento.
La funzione saveXML() mette l'XML interno in una stringa, così possiamo stamparlo.
Ciclo XML
Dobbiamo inizializzare il parser XML, caricare l'XML e fare il ciclo di tutti gli elementi <note>:
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 sopra è:
#text = to = George #text = from = John #text = heading = Promemoria #text = body = Non dimenticare l'incontro! #text =
Nell'esempio sopra, hai visto che ci sono nodi di testo vuoti tra ogni elemento.
Quando l'XML viene generato, di solito contiene spazi tra i nodi. Il parser XML li considera come elementi normali, e se non li presti attenzione, a volte possono sorgere problemi.
Se desideri imparare di più sull'XML DOM, visita il nostro Corso XML DOM.
- Pagina precedente Parser Expat XML
- Pagina successiva SimpleXML XML