Proprietà e Metodi XML DOM

Attributi e metodi definiscono l'interfaccia di programmazione per XML DOM.

Esempio

Esempio di file XML sottostante books.xml.

Funzione loadXMLDoc()Situato all'esterno del JavaScript, utilizzato per caricare un file XML.

Funzione loadXMLString()Situato all'esterno del JavaScript, utilizzato per caricare una stringa XML.

Carica e analizza un file XML
Carica e analizza una stringa XML

Interfaccia di programmazione

Il DOM simula una serie di interfacce di nodi per XML. I nodi possono essere acceduti tramite JavaScript o altri linguaggi di programmazione. In questo tutorial, utilizziamo JavaScript.

L'interfaccia di programmazione del DOM è definita da un set di attributi e metodi standard.

ProprietàDi solito si utilizza il metodo "cos'è qualcosa" (ad esempio, il nome del nodo è "book").

MetodiSpesso usati nel modo "fare qualcosa a qualcosa" (ad esempio, eliminare il nodo "book").

Attributi XML DOM

Alcuni attributi DOM tipici:

  • x.nodeName - Nome di x
  • x.nodeValue - Valore di x
  • x.parentNode - Nodo genitore di x
  • x.childNodes - Nodo figlio di x
  • x.attributes - Nodo di attributo di x

Nota:Nella lista precedente, x è un oggetto nodo.

Metodi XML DOM

  • x.getElementsByTagName(name) - Ottieni tutti gli elementi con il nome di etichetta specificato
  • x.appendChild(node) - Inserisci il nodo figlio in x
  • x.removeChild(node) - Rimuovi il nodo figlio da x

Nota:Nella lista precedente, x è un oggetto nodo.

Esempio

Codice JavaScript per ottenere il testo dell'elemento <title> da books.xml:

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue

Dopo l'esecuzione di questa istruzione, il valore salvato in txt è "Harry Potter".

Spiegazione:

  • xmlDoc - XML DOM creato dall'analizzatore
  • getElementsByTagName("title")[0] - Primo elemento <title>
  • childNodes[0] - Primo figlio del <title> (nodo di testo)
  • nodeValue - Valore del nodo (testo stesso)

Nell'esempio precedente, getElementsByTagName è un metodo, mentre childNodes e nodeValue sono attributi.

Analisi di file XML - Esempio multi-browser

Il frammento di codice seguente utilizza la funzione loadXMLDoc per books.xml Carica l'XML nell'analizzatore e visualizza i dati del primo book:

xmlDoc=loadXMLDoc("books.xml");
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Output:

Harry Potter
J K. Rowling
2005

TIY

Nell'esempio precedente, per ogni nodo di testo utilizziamo childNodes[0], anche se ogni elemento ha solo un nodo di testo. Questo è dovuto al fatto che il metodo getElementsByTagName() restituisce sempre un array.

Analisi di stringhe XML - Esempio multi-browser

Il codice seguente carica e analizza una stringa XML:

Il frammento di codice seguente utilizza la funzione loadXMLString per books.xml Carica l'analizzatore XML e visualizza i dati del primo book:

text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
xmlDoc=loadXMLString(text);
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Output:

Harry Potter
J K. Rowling
2005

TIY