XML DOM egenskaber og metoder
- Forrige side DOM indlæsning
- Næste side DOM tilgang til node
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.
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
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
- Forrige side DOM indlæsning
- Næste side DOM tilgang til node