XML DOM
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("https://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.