XML DOM egenskaber og metoder

Egenskaber og metoder definerer programmeringsgrænsefladen for XML DOM.

Eksempel

Følgende eksempel bruger XML-fil books.xml

Funktion loadXMLDoc()Ligger uden for JavaScript, brugt til at indlæse XML-fil.

Funktion loadXMLString()Ligger uden for JavaScript, brugt til at indlæse XML-streng.

Indlæs og解析 XML-fil
Indlæs og解析 XML-streng

Programmeringsgrænseflade

DOM simulerer XML som en række node-grænseflader. Noder kan tilgås ved hjælp af JavaScript eller andre programmeringssprog. I dette tutorial bruger vi JavaScript.

DOM's programmeringsgrænseflade defineres gennem et sæt standard egenskaber og metoder.

EgenskaberOfte brugt på den måde, hvor "noget er hvad" (f.eks. node navn er "book").

MetoderBruges ofte i formen "gør noget med noget" (f.eks. slet "book"-noden).

XML DOM-egenskaber

Nogle typiske DOM-egenskaber:

  • x.nodeName - Navn for x
  • x.nodeValue - Værdi for x
  • x.parentNode - Forældernode for x
  • x.childNodes - Undernoder for x
  • x.attributes - Egenskaber for x

Bemærkninger:I listen ovenfor er x en nodeobjekt.

XML DOM metoder

  • x.getElementsByTagName(name) - Få alle elementer med angivet tagnavn
  • x.appendChild(node) - Indsæt undernode i x
  • x.removeChild(node) - Fjern undernode fra x

Bemærkninger:I listen ovenfor er x en nodeobjekt.

Eksempel

JavaScript-kode til at hente tekst fra <title>-element i books.xml:

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

Efter udførelsen af denne sætning gemmes værdien af txt som "Harry Potter".

Forklaring:

  • xmlDoc - XML DOM oprettet af fortolkeren
  • getElementsByTagName("title")[0] - Den første <title>-element
  • childNodes[0] - Den første undernode af <title>-elementet
  • nodeValue - Noderne værdi (tekst selv)

I det ovenstående eksempel er getElementsByTagName en metode, mens childNodes og nodeValue er egenskaber.

Fortolkning af XML-fil - krydsbrowser eksempel

Følgende kodefragment bruger loadXMLDoc-funktionen til at books.xml Indlæs XML-fortolkeren og vis dataene for den første book:

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);

Output:

Harry Potter
J K. Rowling
2005

TIY

I det ovenstående eksempel bruger vi childNodes[0] for hver tekstnode, selvom hver element kun har én tekstnode. Dette skyldes, at getElementsByTagName()-metoden altid returnerer en array.

Fortolkning af XML-streng - krydsbrowser eksempel

Følgende kode indlæser og fortolker en XML-streng:

Følgende kodefragment bruger loadXMLString-funktionen til at books.xml Indlæs XML parser og vis data for den første book:

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);

Output:

Harry Potter
J K. Rowling
2005

TIY