XML DOM solmujen käsittely
- Edellinen sivu DOM-ominaisuudet ja -metodit
- Seuraava sivu DOM-elementin tiedot
通过 DOM,您能够访问 XML 文档中的每个节点。
"tagname"
下面的例子使用 XML 文件 books.xml.
函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。
- 使用节点列表中的下标号来访问节点
- 本例使用 getElementsByTagname() 方法来获得 "books.xml" 中的第三个 <title> 元素。
- 使用 length 属性来循环节点
- 本例使用 length 属性来循环 "books.xml" 中的所有 <title> 元素。
- 查看元素的节点类型
- 本例使用 nodeType 属性来获得 "books.xml" 中根元素的节点类型。
- 循环元素节点
- 本例使用 nodeType 属性来处理 "books.xml" 中的元素节点。
- 使用节点的关系来循环元素节点
- 本例使用 nodeType 属性和 nextSibling 属性来处理 "books.xml" 中的元素节点。
访问节点
您可以通过三种方法来访问节点:
- 通过使用 getElementsByTagName() 方法
- 通过循环(遍历)节点树
- 通过利用节点的关系在节点树中导航
getElementsByTagName() 方法
getElementsByTagName() 返回拥有指定标签名的所有元素。
语法
node.getElementsByTagName("tagname");
"tagname"
);
Esimerkki
x.getElementsByTagName("title");
Huomaa, että yllä oleva esimerkki palauttaa vain x-solmun alaiset <title>-elementit. Jos haluat palauttaa kaikki <title>-elementit XML-dokumentista, käytä:
xmlDoc.getElementsByTagName("title");
Tässä xmlDoc on asiakirja itsessään (asiakirjasolmu).
DOM Solmunluettelo
getElementsByTagName() -menetelmä palauttaa solmunluettelon (solmunluettelo). Solmunluettelo on solmujen taulukko. loadXMLDoc() Aseta "books.xml"Lataa xmlDoc
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
Voit tarkastella x:ssä olevaa <title>-elementtiä indeksin avulla. Jos haluat tarkastella kolmatta <title>-elementtiä, voit kirjoittaa:
y=x[2];
Huomautus:Alkukohdat alkavat 0:sta.
Opit lisää solmunluettelosta hieman myöhemmin tässä opastuksessa.
DOM Solmunluettelo Pituus
Length-ominaisuus määrittää solmunluettelon pituuden (eli solmujen määrän).
Voit toistaa solmunluettelon käyttämällä length-ominaisuutta:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
Esimerkki selityksestä:
- Käytä loadXMLDoc() Aseta "books.xml"Lataa xmlDoc
- Hanki kaikki <title>-elementtisolmut
- Tulosta jokaisen <title>-elementin tekstin solmun arvo
Solmun tyyppi
XML-dokumentin documentElement Ominaisuus on juurisolmu.
solmun nodeName Ominaisuus on solmun nimi.
solmun nodeType Ominaisuus on solmun tyyppi.
Opit lisää solmun ominaisuuksista seuraavassa osassa tätä opastusta.
Kierretään solmuja
Seuraavaa koodia toistetaan juurisolmun alisolmut, jotka ovat elementtisolmuja:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Käsittele vain elementtisolut (tyyppi 1) document.write(x[i].nodeName); document.write("<br />"); } }
Esimerkki selityksestä:
- Käyttämällä loadXMLDoc() Aseta "books.xml"Lataa xmlDoc:iin
- Hanki juurisolmun alisolmut
- Tarkista jokaisen alikohdan solmun tyyppi. Jos solmun tyyppi on "1", se on elementtisolmu
- Jos solmu on elementti, tulosta solmun nimi
Navigointi solmujen välisissä suhteiden avulla
Seuraavaa koodia käytetään solmujen välisissä suhteiden avulla solmutréenissä navigointiin:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Käsittele vain elementtisolut (tyyppi 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; }
- Käyttämällä loadXMLDoc() Aseta "books.xml"Lataa xmlDoc:iin
- Hanki ensimmäisen "book"-elementin lapsisolmut
- Aseta "y"-muuttuja ensimmäisen "book"-elementin ensimmäiseen lapsisolmuun
- Tarkista jokaisen lapsisolmun solmun tyyppi, jos solmun tyyppi on "1", niin se on elementti
- Jos solmu on elementti, tulosta solmun nimi
- Aseta "y"-muuttuja seuraavaan samantasoiseen solmuun ja suorita silmukka uudelleen
- Edellinen sivu DOM-ominaisuudet ja -metodit
- Seuraava sivu DOM-elementin tiedot