XML DOM solmun sijainti
- Edellinen sivu DOM-selain
- Seuraava sivu DOM hakee solmuja
solmun sijainti voidaan määrittää solmujen välisistä suhteista.
Esimerkki
Seuraavassa esimerkissä käytetään XML-tiedostoa books.xml.
Funktio loadXMLDoc()sijaitsee ulkoisessa JavaScriptissä, käytetään XML-tiedoston lataamiseen.
- Hanki solmun isäsolmu
- Tässä esimerkissä käytetään parentNode -ominaisuutta saadakseen solmun isäntäsolmun.
- Hae solmun ensimmäinen lapsisolmu
- Tässä esimerkissä käytetään firstChild() -menetelmää ja mukautettua funktiota saadakseen solmun ensimmäisen lapsisolmun.
Navigoi DOM-solmuja
Solmujen väliset suhteet avulla voidaan selailla solmuta, mikä tunnetaan yleisesti solmujen navigointina ("navigating nodes").
XML DOM:ssa solmujen väliset suhteet määritellään solmujen ominaisuuksilla:
- parentNode
- childNodes
- firstChild
- lastChild
- nextSibling
- previousSibling
Seuraava kuva näyttää: books.xml Osa solmuista ja selitetään solmujen väliset suhteet:

DOM - isäntäsolmu
Kaikki solmut ovat yhdellä isäntäsolmulla. Seuraava koodi sijoittuu <book>-solmun isäntäsolmuun:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; document.write(x.parentNode.nodeName);
Esimerkki selitetään:
- Käyttämällä loadXMLDoc() "books.xml" tuodaan xmlDoc:iin
- Hae ensimmäinen <book>-solmu
- Tulosta "x"-solmun isäntäsolmun solmunimi
Vältä tyhjiä tekstisolmuja
Firefox ja muutamat muut selaimet näkevät tyhjät välilyönnit ja rivinvaihdot tekstisolmuina, kun taas IE ei tee niin.
Tämä aiheuttaa ongelman seuraavien ominaisuuksien käytössä: firstChild, lastChild, nextSibling, previousSibling.
Välttääksemme sijoittumisen tyhjiin tekstisolmuihin (elementtisolmujen välisissä välilyönneissä ja rivinvaihdoksissa) käytämme funktiota solmun tyyppien tarkistamiseen:
function get_nextSibling(n) { y=n.nextSibling; while (y.nodeType!=1) { y=y.nextSibling; } return y; }
Yllä olevien funktioiden avulla voimme käyttää get_nextSibling(node) -funktiota korvaamaan node.nextSibling -ominaisuutta.
Koodin selitys:
Elementtisolmun tyyppi on 1. Jos samaa tasoa oleva solmu ei ole elementtisolmu, siirry seuraavaan solmuun, kunnes löydetään elementtisolmu. Tällä tavalla saadaan sama tulos sekä IE:ssä että Firefoxissa.
Hae ensimmäinen solmu
Seuraava koodi näyttää ensimmäisen <book>-solmun ensimmäisen elementtisolmun:
<html> <head> <script type="text/javascript" src="loadxmldoc.js"> </script> <script type="text/javascript"> //tarkista, onko ensimmäinen solmu elementtisolmu function get_firstChild(n) { y=n.firstChild; while (y.nodeType!=1) { y=y.nextSibling; } return y; } </script> </head> <body> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]); document.write(x.nodeName); </script> </body> </html>
Tulostus:
title
Esimerkki selitetään:
- Käyttämällä loadXMLDoc() "books.xml"Lataa xmlDoc:ssa
- Käytä get_firstChild-funktiota ensimmäisessä <book>-elementissä, jotta voit saada ensimmäisen lapsisolmun elementtisolmussa
- Tulostaa ensimmäisen lapsisolmun (elementtisolmun) solmunimi
Esimerkki
Alla olevassa esimerkissä käytetään samankaltaisia funktioita:
- Edellinen sivu DOM-selain
- Seuraava sivu DOM hakee solmuja