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.

