XML DOM -ominaisuudet ja metodit

Attributes and methods define the programming interface for XML DOM.

Esimerkki

The following example uses XML file books.xml.

Function loadXMLDoc(), located in external JavaScript, used to load XML file.

Function loadXMLString(), located in external JavaScript, used to load XML string.

Load and parse XML file
Load and parse XML string

Programming Interface

DOM simulates XML as a series of node interfaces. Nodes can be accessed using JavaScript or other programming languages. In this tutorial, we use JavaScript.

The programming interface for DOM is defined by a set of standard properties and methods.

AttributesUse it frequently in the way of “What is something” (for example, the node name is "book").

MenetelmätKäytetään usein "tehtävä, jonka suorittaa jokin asia" -tyyliin (esim. poista "book"-solmu).

XML DOM -ominaisuudet

Joitakin tyypillisiä DOM-ominaisuuksia:

  • x.nodeName - x:n nimi
  • x.nodeValue - x:n arvo
  • x.parentNode - x:n emo
  • x.childNodes - x:n alisolut
  • x.attributes - x:n ominaisuussolu

Huomautus:Yllä olevassa luettelossa x on solmuobjekti.

XML DOM -menetelmät

  • x.getElementsByTagName(name) - Hae kaikki määritellyllä nimellä olevat elementit
  • x.appendChild(node) - Lisää x:hen alisolu
  • x.removeChild(node) - Poista x:n alisolu

Huomautus:Yllä olevassa luettelossa x on solmuobjekti.

Esimerkki

JavaScript-koodi, joka hakee tekstin <title>-elementistä books.xml:sta:

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue

Tämän lauseen suorittamisen jälkeen txt tallentaa arvon "Harry Potter".

Selitys:

  • xmlDoc - Tulkinnan lopputuloksena luodut XML DOM
  • getElementsByTagName("title")[0] - Ensimmäinen <title>-elementti
  • childNodes[0] - <title>-elementin ensimmäinen lapsi (tekstipiste)
  • nodeValue - Solun arvo (teksti itsessään)

Yllä olevassa esimerkissä getElementsByTagName on menetelmä, ja childNodes ja nodeValue ovat ominaisuuksia.

XML-tiedoston analysointi - moniselvitys esimerkki

Tämä koodipätkä käyttää loadXMLDoc-funktiota tallentamaan books.xml Lataa XML-tulkkiin ja näytä ensimmäisen book-elementin tiedot:

xmlDoc=loadXMLDoc("books.xml");
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Tulostus:

Harry Potter
J K. Rowling
2005

TIY

Yllä olevassa esimerkissä käytämme childNodes[0] jokaiselle tekstipisteelle, vaikka jokaisella elementillä on vain yksi tekstipiste. Tämä johtuu siitä, että getElementsByTagName()-menetelmä aina palauttaa taulukon.

XML-merkkijonon analysointi - moniselvitys esimerkki

Tämä koodi lataa ja analysoi XML-merkkijonon:

Tämä koodipätkä käyttää loadXMLString-funktiota tallentamaan books.xml Lataa XML-parseri ja näytä ensimmäisen book:n tiedot:

text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
xmlDoc=loadXMLString(text);
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Tulostus:

Harry Potter
J K. Rowling
2005

TIY