Mega Code Archive

 
Categories / JavaScript DHTML / Development
 

Display XML content in HTML table

<!-- *********************************************************** Example 5-12 "Dynamic HTML:The Definitive Reference" 2nd Edition by Danny Goodman Published by O'Reilly & Associates  ISBN 0-596-00316-1 http://www.oreilly.com Copyright 2002 Danny Goodman.  All Rights Reserved. ************************************************************ --> <html> <head> <title>Embedding External XML Data</title> <style type="text/css"> body {background-color:#ffffff} table {table-collapse:collapse; border-spacing:0} td {border:2px groove black; padding:7px} th {border:2px groove black; padding:7px} .ctr {text-align:center} </style> <script language="JavaScript" type="text/javascript"> // global reference to XML document object var xDoc; // Draw table from xDoc document tree data function drawTable(tbody) {     var tr, td, i, j, oneRecord;     tbody = document.getElementById(tbody);     // node tree     var data = xDoc.getElementsByTagName("season")[0];     // for td class attributes     var classes = ["ctr","","","","ctr"];     for (i = 0; i < data.childNodes.length; i++) {         // use only 1st level element nodes         if (data.childNodes[i].nodeType == 1) {             // one bowl record             oneRecord = data.childNodes[i];             tr = tbody.insertRow(tbody.rows.length);             td = tr.insertCell(tr.cells.length);             td.setAttribute("class",classes[tr.cells.length-1]);             td.innerHTML = oneRecord.getElementsByTagName("number")[0].firstChild.nodeValue;             td = tr.insertCell(tr.cells.length);             td.setAttribute("class",classes[tr.cells.length-1]);             td.innerHTML = oneRecord.getElementsByTagName("year")[0].firstChild.nodeValue;             td = tr.insertCell(tr.cells.length);             td.setAttribute("class",classes[tr.cells.length-1]);             td.innerHTML = oneRecord.getElementsByTagName("winner")[0].firstChild.nodeValue;             td = tr.insertCell(tr.cells.length);             td.setAttribute("class",classes[tr.cells.length-1]);             td.innerHTML = oneRecord.getElementsByTagName("loser")[0].firstChild.nodeValue;             td = tr.insertCell(tr.cells.length);             td.setAttribute("class",classes[tr.cells.length-1]);             td.innerHTML = oneRecord.getElementsByTagName("winscore")[0].firstChild.nodeValue + " - " + oneRecord.getElementsByTagName("losscore")[0].firstChild.nodeValue;         }     } } // verify that browser supports XML features and load external .xml file function verifySupport(xFile) {     if (document.implementation && document.implementation.createDocument) {         // this is the W3C DOM way, supported so far only in NN6         xDoc = document.implementation.createDocument("", "theXdoc", null);     } else if (typeof ActiveXObject != "undefined") {         // make sure real object is supported (sorry, IE5/Mac)         if (document.getElementById("msxml").async) {             xDoc = new ActiveXObject("Msxml.DOMDocument");         }     }     if (xDoc && typeof xDoc.load != "undefined") {         // load external file (from same domain)         xDoc.load(xFile);         return true;     } else {         var reply = confirm("This example requires a browser with XML support, such as IE5+/Windows or Netscape 6+.\n \nGo back to previous page?");         if (reply) {             history.back();         }     }     return false; } // initialize first time -- invoked onload function init(xFile) {     // confirm browser supports needed features and load .xml file     if (verifySupport(xFile)) {         // let file loading catch up to execution thread         setTimeout("drawTable('bowlData')", 1000);     } } </script> </head> <body onload="init('superBowls.xml');"> <h1>Super Bowl Games</h1> <hr> <table id="bowlGames"> <thead> <tr><th>Bowl</th>     <th>Year</th>     <th>Winner</th>     <th>Loser</th>     <th>Score (Win or Lose)</th> </tr> </thead> <tbody id="bowlData"></tbody> </table> <!-- Try to load Msxml.DOMDocument ActiveX to assist support verification --> <object id="msxml" WIDTH="1" HEIGHT="1" classid="CLSID:2933BF90-7B36-11d2-B20E-00C04F983E60" ></object> </body> </html>