Site hosted by Angelfire.com: Build your free website today!

XML DOM

xml.jpg

DOM (Document Object Model) määrab standardi mis annab dokumendile juurdepääsu ning võimaluse sellega manipuleerida.

DOM kuvab XML dokumenti hierarhilise struktuuri-puuna. Kõiki puu elemente saab muuta, kustutada ja luua uusi. Elemente, nende tekste ja atribuute kutsutakse liidesteks (node).
Selleks, et paremini tundma õppida seda teemat siis tutvu lähemalt XML DOM materjalidega.

<html>
<head>
<script type="text/javascript">
function parseXML()
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e)
    {
    alert(e.message);
    return;
    }
  }
xmlDoc.async=false;
xmlDoc.load("http://pyramdesign.angelfire.com/xml/nai/note.xml");

document.getElementById("kellele").innerHTML=
xmlDoc.getElementsByTagName("kellele")[0].childNodes[0].nodeValue;
document.getElementById("kellelt").innerHTML=
xmlDoc.getElementsByTagName("kellelt")[0].childNodes[0].nodeValue;
document.getElementById("teema").innerHTML=
xmlDoc.getElementsByTagName("teema")[0].childNodes[0].nodeValue;
}
</script>
</head>

<body onload="parseXML()">
<h1>PyramDesign ametlik meeldetuletus</h1>
<p><b>Kellele:</b> <span id="kellele"></span>
<b>Kellelt:</b> <span id="kellelt"></span>
<b>Teema:</b> <span id="teema">/lt;/span>
</p>
</body>
</html>

Tulemus peaks olema selline:

PyramDesign ametlik meeldetuletus

Kellele: Jaan
Kellelt: Juhan
Teema: Homme jooma ei hakka!

Proovi ise:

Pane tähele: selleks, et saada väljavõtet XML'is "Juhan" kohta siis tuleb kirjutada:

getElementsByTagName("kellelt")[0].childNodes[0].nodeValue

XML dokumendis on ainult üks <kellelt> märgis kuid siiski tuleb määrata array indeks [0]. Seda sellepärast, et XML parseri meetod "getElementByTagName()" pöördub kõigi <kellelt> liideste poole.

XML Stringi Parsimine

Allpool olevas näites parsitakse XML string'i:

<html>
<head>
<script type="text/javascript">
function parseXML()
{
text="<teade>";
text=text+"<kellele>Jaan";
text=text+"<kellelt>Juhan";
text=text+"<pealkiri>Meeldetuletus";
text=text+"<teema>Homme jooma ei hakka!";
text=text+"</teade>";
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(text);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(text,"text/xml");
  }
  catch(e)
  {
  alert(e.message);
  return;
  }
}
document.getElementById("kellele").innerHTML=
xmlDoc.getElementsByTagName("kellele")[0].childNodes[0].nodeValue;
document.getElementById("kellelt").innerHTML=
xmlDoc.getElementsByTagName("kellelt")[0].childNodes[0].nodeValue;
document.getElementById("teema").innerHTML=
xmlDoc.getElementsByTagName("teema")[0].childNodes[0].nodeValue;
}
</script>
</head>

<body onload="parseXML()">
<h1>PyramDesign ametlik teade</h1>
<p><b>Kellele: <span id="kellele"></span>
<b>Kellelt: <span id="kellelt"></span>
<b>Teema: <span id="teema"></span>
</p>
</body>
</html>

Tulemus peaks olema selline:

PyramDesign ametlik meeldetuletus

Kellele: Jaan
Kellelt: Juhan
Teema: Homme jooma ei hakka!

Proovi ise:

Pane tähele: IE kasutab "loadXML()" meetodit XML string'i parsimiseks kui teised brauserid kasutavad "DOMParser" objekti.





Punane Nool Vasak Punane Nool