<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- Example File From "JavaScript and DHTML Cookbook" Published by O'Reilly & Associates Copyright 2003 Danny Goodman --> <html> <head> <title>Convert XML to HTML</title> <style rel="stylesheet" id="mainStyle" type="text/css">
html {background-color:#cccccc} body {background-color:#eeeeee; font-family:Tahoma,Arial,Helvetica,sans-serif; font-size:12px; margin-left:15%; margin-right:15%; border:3px groove darkred; padding:15px} h1 {text-align:right; font-size:1.5em; font-weight:bold} h2 {text-align:left; font-size:1.1em; font-weight:bold; text-decoration:underline} .buttons {margin-top:10px}
</style> <style type="text/css"> table {table-collapse:collapse; border-spacing:0} td {border:2px groove black; padding:7px; background-color:#ccffcc} th {border:2px groove black; padding:7px; background-color:#ffffcc} .ctr {text-align:center} </style> <script type="text/javascript"> var xDoc;
// 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; }
// 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("worldcup")[0]; // for td class attributes var classes = ["ctr","","","","ctr"]; for (i = 0; i < data.childNodes.length; i++) { // use only 1st level element nodes to skip 1st level text nodes in NN if (data.childNodes[i].nodeType == 1) { // one final match 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("year")[0].firstChild.nodeValue; td = tr.insertCell(tr.cells.length); td.setAttribute("class",classes[tr.cells.length-1]); td.innerHTML = oneRecord.getElementsByTagName("location")[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; } } }
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('matchData')", 1000); } }
</script> </head> <body onload="init('worldCupFinals.xml')"> <h1>Transforming XML into HTML Tables</h1> <hr />
<table id="cupFinals"> <thead> <tr><th>Year</th> <th>Host Country</th> <th>Winner</th> <th>Loser</th> <th>Score (Win - Lose)</th> </tr> </thead> <tbody id="matchData"></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>
<!-- File:worldCupFinals.xml <?xml version="1.0"?> <worldcup> <final> <location>Uruguay</location> <year>1930</year> <winner>Uruguay</winner> <winscore>4</winscore> <loser>Argentina</loser> <losscore>2</losscore> </final> <final> <location>Italy</location> <year>1934</year> <winner>Italy</winner> <winscore>2</winscore> <loser>Czechoslovakia</loser> <losscore>1</losscore> </final> <final> <location>France</location> <year>1938</year> <winner>Italy</winner> <winscore>4</winscore> <loser>Hungary</loser> <losscore>2</losscore> </final> <final> <location>Brazil</location> <year>1950</year> <winner>Uruguay</winner> <winscore>2</winscore> <loser>Brazil</loser> <losscore>1</losscore> </final> <final> <location>Switzerland</location> <year>1954</year> <winner>West Germany</winner> <winscore>3</winscore> <loser>Hungary</loser> <losscore>2</losscore> </final> <final> <location>Sweden</location> <year>1958</year> <winner>Brazil</winner> <winscore>5</winscore> <loser>Sweden</loser> <losscore>2</losscore> </final> <final> <location>Chile</location> <year>1962</year> <winner>Brazil</winner> <winscore>3</winscore> <loser>Czechoslovakia</loser> <losscore>1</losscore> </final> <final> <location>England</location> <year>1966</year> <winner>England</winner> <winscore>4</winscore> <loser>West Germany</loser> <losscore>2</losscore> </final> <final> <location>Mexico</location> <year>1970</year> <winner>Brazil</winner> <winscore>4</winscore> <loser>Italy</loser> <losscore>1</losscore> </final> </worldcup>
-->
|