XML - DOM

Il Document Object Model (DOM)è il fondamento di XML. I documenti XML hanno una gerarchia di unità informative chiamate nodi ; DOM è un modo per descrivere quei nodi e le relazioni tra loro.

Un documento DOM è una raccolta di nodi o pezzi di informazioni organizzati in una gerarchia. Questa gerarchia consente a uno sviluppatore di navigare attraverso l'albero alla ricerca di informazioni specifiche. Poiché si basa su una gerarchia di informazioni, si dice che il DOM sia basato su albero .

Il DOM XML, d'altra parte, fornisce anche un'API che consente a uno sviluppatore di aggiungere, modificare, spostare o rimuovere nodi nell'albero in qualsiasi punto per creare un'applicazione.

Esempio

Il seguente esempio (sample.htm) analizza un documento XML ("address.xml") in un oggetto DOM XML e quindi estrae alcune informazioni da esso con JavaScript -

<!DOCTYPE html>
<html>
   <body>
      <h1>TutorialsPoint DOM example </h1>
      <div>
         <b>Name:</b> <span id = "name"></span><br>
         <b>Company:</b> <span id = "company"></span><br>
         <b>Phone:</b> <span id = "phone"></span>
      </div>
      <script>
         if (window.XMLHttpRequest)
         {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
         }
         else
         {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         xmlhttp.open("GET","/xml/address.xml",false);
         xmlhttp.send();
         xmlDoc = xmlhttp.responseXML;

         document.getElementById("name").innerHTML=
            xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;
         document.getElementById("company").innerHTML=
            xmlDoc.getElementsByTagName("company")[0].childNodes[0].nodeValue;
         document.getElementById("phone").innerHTML=
            xmlDoc.getElementsByTagName("phone")[0].childNodes[0].nodeValue;
      </script>
   </body>
</html>

Contenuti di address.xml sono i seguenti -

<?xml version = "1.0"?>
<contact-info>
   <name>Tanmay Patil</name>
   <company>TutorialsPoint</company>
   <phone>(011) 123-4567</phone>
</contact-info>

Ora conserviamo questi due file sample.htm e address.xml nella stessa directory /xml ed eseguire il sample.htmfile aprendolo in qualsiasi browser. Questo dovrebbe produrre il seguente output.

Qui puoi vedere come viene estratto ciascuno dei nodi figlio per visualizzare i loro valori.