XML DOM - Eigenschappen en Methoden
- Previous page DOM loading
- Next page DOM access node
Eigenschappen en methoden definiëren een programmeerinterface voor XML DOM.
Voorbeeld
Het volgende voorbeeld gebruikt een XML-bestand books.xml.
Functie loadXMLDoc()Ligt buiten de JavaScript, gebruikt om een XML-bestand te laden.
Functie loadXMLString()Ligt buiten de JavaScript, gebruikt om een XML-tekst te laden.
Programmeerinterface
DOM simuleert XML als een reeks knooppuntinterfaces. Nodes kunnen worden benaderd met JavaScript of andere programmeertalen. In deze handleiding gebruiken we JavaScript.
Het programmeren van DOM wordt gedefinieerd door een set standaard eigenschappen en methoden.
EigenschappenHoeft vaak om te gebruiken volgens het schema 'wat is iets' (bijvoorbeeld, de naam van het knooppunt is "book").
MethodenWorden vaak gebruikt in de vorm van "iets doen met iets" (bijvoorbeeld het verwijderen van de "book"-node).
XML DOM-eigenschappen
Enkele typische DOM-eigenschappen:
- x.nodeName - Naam van x
- x.nodeValue - Waarde van x
- x.parentNode - Parennode van x
- x.childNodes - Zoonnodes van x
- x.attributes - Eigenschapsnode van x
Opmerking:In de bovenstaande lijst is x een node-object.
XML DOM-methoden
- x.getElementsByTagName(name) - Haal alle elementen met de gespecificeerde naam op
- x.appendChild(node) - Voeg een subnode toe aan x
- x.removeChild(node) - Verwijder de subnode van x
Opmerking:In de bovenstaande lijst is x een node-object.
Voorbeeld
JavaScript-code om tekst van het <title>-element te halen uit books.xml:
txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue
Na het uitvoeren van deze statement wordt de waarde die txt opslaat "Harry Potter".
Uitleg:
- xmlDoc - Door de parser gecreëerde XML DOM
- getElementsByTagName("title")[0] - Eerste <title>-element
- childNodes[0] - Eerste onderdeel van het <title>-element (tekstnode)
- nodeValue - Waarde van de node (tekst zelf)
In het bovenstaande voorbeeld is getElementsByTagName een methode, terwijl childNodes en nodeValue eigenschappen zijn.
XML-bestand parseren - crossbrowser voorbeeld
Het volgende codefragment gebruikt de functie loadXMLDoc om books.xml Laad de XML-parser in en toon de gegevens van de eerste 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
In het bovenstaande voorbeeld gebruiken we childNodes[0] voor elke tekstnode, zelfs als elk element maar één tekstnode heeft. Dit komt omdat de methode getElementsByTagName() altijd een array teruggeeft.
XML-tekenreeks parseren - crossbrowser voorbeeld
Het volgende codefragment laadt en parseert een XML-tekenreeks:
Het volgende codefragment gebruikt de functie loadXMLString om books.xml Load XML parser and display the data of the first 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
- Previous page DOM loading
- Next page DOM access node