Open Directory Site XMLDOM Tutorials

ASP | XML | VBScript | JavaScript | ADO | CSS | XMLDOM | PHP | Operating Systems

Home >> XMLDOM >>Accessing the DOM

Accessing the DOM

 

XML elements can be extracted from an XML document by traversing the node tree, by accessing the elements by number, or by accessing the elements by name.

Traversing the node tree

One common way to extract XML elements from an XML document is to traverse the node tree and extract the text value of each element. A small snippet of programming code like a VBScript for/each construct can be written to demonstrate this.

The following VBScript code traverses an XML node tree, and displays the XML elements in the browser:

set xmlDoc=CreateObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

for each x in xmlDoc.documentElement.childNodes document.write(x.nodename)

document.write(": ")

document.write(x.text)

next

Providing HTML content from XML files

One of the great promises of XML is the possibility to separate HTML documents from their data. By using an XML parser inside the browser, an HTML page can be constructed as a static document, with an embedded JavaScript to provide dynamic data.

The following JavaScript reads XML data from an XML document and writes the XML data into (waiting) HTML elements.

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

nodes = xmlDoc.documentElement.childNodes

to.innerText = nodes.item(0).text

from.innerText = nodes.item(1).text

header.innerText = nodes.item(2).text

body.innerText = nodes.item(3).text

Accessing XML elements by name

Addressing elements by number is not the preferred way to extract XML elements from an XML document. Using names is a better way.

The following JavaScript reads XML data from an XML document and writes the XML data into (waiting) HTML elements.

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

to.innerText= xmlDoc.getElementsByTagName("to").item(0).text from.innerText= xmlDoc.getElementsByTagName("from").item(0).text header.innerText= xmlDoc.getElementsByTagName("heading").item(0).text body.innerText= xmlDoc.getElementsByTagName("body").item(0).text

Important: Make sure that you notice that the text element of a node is the child node of the element. To extract the text (Jani) from an element like this: <from>Jani</from>, you must address the child node like this: getElementsByTagName("from").item(0).text, and not like this: getElementsByTagName("from").text

Cheap Web Hosting Articles - Web Site Design & Web Hosting Tutorials - Domain Hosting