<HTML> <HEAD> <TITLE>XML to DOM Converter: Listing 1</TITLE> <APPLET CODE=com.ms.xml.dso.XMLDSO.class WIDTH=100% HEIGHT=30 ID=xmldso MAYSCRIPT=true> <PARAM NAME="url" VALUE="someXMLDocument.xml"> </APPLET> </HEAD> <BODY> <SCRIPT> _root = xmldso.getDocument().root results = window.document; // Simple stack ADT function stack() { this.depth = 0; this.data = new Array(); this.push = push; this.pop = pop; this.popTop = popTop; this.length = length; this.exists = exists; return this; } // Add an item function push( item ) { this.data[ this.depth ++ ] = item; } // Remove last item function pop() { if ( this.depth ) { this.depth --; return this.data[ this.depth ]; } return null; } // Remove item at head of stack function popTop() { if ( this.depth ) { // Pop the top item _j = this.data[ 0 ]; this.depth --; // Shuffle the stack up a place for ( _i = 0; _i < this.depth; _i ++ ) { this.data[ _i ] = this.data[ _i + 1 ] } return _j; } return null; } // Return the size of the stack function length() { return this.depth; } // Does the stack hold the specified item? function exists( obj ) { for ( _i = 0; _i < this.depth; _i ++ ) { if ( this.data[ _i ] == obj ) { return true; } } return false; } // Get the XML root var root = document.applets.xmldso.getDocument().root; // Stack for XML elements var x = new stack(); x.push( root ); while ( x.length() != 0 ) { // Pop top item var xmlTag = x.popTop(); // If node is a leaf, write it out, else stack its children if ( xmlTag.children.length == 0 ) document.writeln( xmlTag.tagname + " : " + xmlTag.text + "<br>" ); else { for ( i = 0; i < xmlTag.children.length; i ++ ) x.push( xmlTag.children.item( i ) ); } } </SCRIPT> </BODY> </HTML>

Script Junkie | An XML Document to JavaScript Object Converter (Web Techniques,
Related Reading
More Insights
INFO-LINK
![]() |
To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy. |