<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FDevelopment%2FXML</id>
		<title>JavaScript DHTML/Development/XML - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FDevelopment%2FXML"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Development/XML&amp;action=history"/>
		<updated>2026-04-04T19:05:34Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/Development/XML&amp;diff=1844&amp;oldid=prev</id>
		<title> в 10:02, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Development/XML&amp;diff=1844&amp;oldid=prev"/>
				<updated>2010-05-26T10:02:39Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 10:02, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/Development/XML&amp;diff=1845&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Development/XML&amp;diff=1845&amp;oldid=prev"/>
				<updated>2010-05-26T07:20:00Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Convert XML to HTML==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &lt;br /&gt;
  &amp;quot;http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
     Example File From &amp;quot;JavaScript and DHTML Cookbook&amp;quot;&lt;br /&gt;
     Published by O&amp;quot;Reilly &amp;amp; Associates&lt;br /&gt;
     Copyright 2003 Danny Goodman&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Convert XML to HTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;style rel=&amp;quot;stylesheet&amp;quot; id=&amp;quot;mainStyle&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
html {background-color:#cccccc}&lt;br /&gt;
body {background-color:#eeeeee; font-family:Tahoma,Arial,Helvetica,sans-serif; font-size:12px;&lt;br /&gt;
    margin-left:15%; margin-right:15%; border:3px groove darkred; padding:15px}&lt;br /&gt;
h1 {text-align:right; font-size:1.5em; font-weight:bold}&lt;br /&gt;
h2 {text-align:left; font-size:1.1em; font-weight:bold; text-decoration:underline}&lt;br /&gt;
.buttons {margin-top:10px}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
table {table-collapse:collapse; border-spacing:0}&lt;br /&gt;
td {border:2px groove black; padding:7px; background-color:#ccffcc}&lt;br /&gt;
th {border:2px groove black; padding:7px; background-color:#ffffcc}&lt;br /&gt;
.ctr {text-align:center}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var xDoc;&lt;br /&gt;
// verify that browser supports XML features and load external .xml file&lt;br /&gt;
function verifySupport(xFile) {&lt;br /&gt;
    if (document.implementation &amp;amp;&amp;amp; document.implementation.createDocument) {&lt;br /&gt;
        // this is the W3C DOM way, supported so far only in NN6+&lt;br /&gt;
        xDoc = document.implementation.createDocument(&amp;quot;&amp;quot;, &amp;quot;theXdoc&amp;quot;, null);&lt;br /&gt;
    } else if (typeof ActiveXObject != &amp;quot;undefined&amp;quot;) {&lt;br /&gt;
        // make sure real object is supported (sorry, IE5/Mac)&lt;br /&gt;
        if (document.getElementById(&amp;quot;msxml&amp;quot;).async) {&lt;br /&gt;
            xDoc = new ActiveXObject(&amp;quot;Msxml.DOMDocument&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (xDoc &amp;amp;&amp;amp; typeof xDoc.load != &amp;quot;undefined&amp;quot;) {&lt;br /&gt;
        // load external file (from same domain)&lt;br /&gt;
        xDoc.load(xFile);&lt;br /&gt;
        return true;&lt;br /&gt;
    } else {&lt;br /&gt;
        var reply = confirm(&amp;quot;This example requires a browser with XML support, &amp;quot; +&lt;br /&gt;
            &amp;quot;such as IE5+/Windows or Netscape 6+.\n \nGo back to previous page?&amp;quot;);&lt;br /&gt;
        if (reply) {&lt;br /&gt;
            history.back();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return false;&lt;br /&gt;
}&lt;br /&gt;
// Draw table from xDoc document tree data&lt;br /&gt;
function drawTable(tbody) {&lt;br /&gt;
    var tr, td, i, j, oneRecord;&lt;br /&gt;
    tbody = document.getElementById(tbody);&lt;br /&gt;
    // node tree&lt;br /&gt;
    var data = xDoc.getElementsByTagName(&amp;quot;worldcup&amp;quot;)[0];&lt;br /&gt;
    // for td class attributes&lt;br /&gt;
    var classes = [&amp;quot;ctr&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;ctr&amp;quot;];&lt;br /&gt;
    for (i = 0; i &amp;lt; data.childNodes.length; i++) {&lt;br /&gt;
        // use only 1st level element nodes to skip 1st level text nodes in NN&lt;br /&gt;
        if (data.childNodes[i].nodeType == 1) {&lt;br /&gt;
            // one final match record&lt;br /&gt;
            oneRecord = data.childNodes[i];&lt;br /&gt;
            tr = tbody.insertRow(tbody.rows.length);&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = &lt;br /&gt;
              oneRecord.getElementsByTagName(&amp;quot;year&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = &lt;br /&gt;
               oneRecord.getElementsByTagName(&amp;quot;location&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = &lt;br /&gt;
               oneRecord.getElementsByTagName(&amp;quot;winner&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = &lt;br /&gt;
               oneRecord.getElementsByTagName(&amp;quot;loser&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = &lt;br /&gt;
               oneRecord.getElementsByTagName(&amp;quot;winscore&amp;quot;)[0].firstChild.nodeValue + &lt;br /&gt;
               &amp;quot; - &amp;quot; + &lt;br /&gt;
               oneRecord.getElementsByTagName(&amp;quot;losscore&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
function init(xFile) {&lt;br /&gt;
    // confirm browser supports needed features and load .xml file&lt;br /&gt;
    if (verifySupport(xFile)) {&lt;br /&gt;
        // let file loading catch up to execution thread&lt;br /&gt;
        setTimeout(&amp;quot;drawTable(&amp;quot;matchData&amp;quot;)&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body onload=&amp;quot;init(&amp;quot;worldCupFinals.xml&amp;quot;)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Transforming XML into HTML Tables&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;hr /&amp;gt; &lt;br /&gt;
&amp;lt;table id=&amp;quot;cupFinals&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thead&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Year&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Host Country&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Winner&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Loser&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Score (Win - Lose)&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/thead&amp;gt;&lt;br /&gt;
&amp;lt;tbody id=&amp;quot;matchData&amp;quot;&amp;gt;&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!-- Try to load Msxml.DOMDocument ActiveX to assist support verification --&amp;gt;&lt;br /&gt;
&amp;lt;object id=&amp;quot;msxml&amp;quot; WIDTH=&amp;quot;1&amp;quot; HEIGHT=&amp;quot;1&amp;quot; &lt;br /&gt;
    classid=&amp;quot;CLSID:2933BF90-7B36-11d2-B20E-00C04F983E60&amp;quot; &amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!-- File:worldCupFinals.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt; &lt;br /&gt;
&amp;lt;worldcup&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;Uruguay&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1930&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;Uruguay&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;4&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;Argentina&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;2&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;Italy&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1934&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;Italy&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;2&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;Czechoslovakia&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;1&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;France&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1938&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;Italy&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;4&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;Hungary&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;2&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;Brazil&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1950&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;Uruguay&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;2&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;Brazil&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;1&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;Switzerland&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1954&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;West Germany&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;3&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;Hungary&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;2&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;Sweden&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1958&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;Brazil&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;5&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;Sweden&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;2&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;Chile&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1962&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;Brazil&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;3&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;Czechoslovakia&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;1&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;England&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1966&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;England&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;4&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;West Germany&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;2&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
    &amp;lt;final&amp;gt;&lt;br /&gt;
        &amp;lt;location&amp;gt;Mexico&amp;lt;/location&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1970&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;winner&amp;gt;Brazil&amp;lt;/winner&amp;gt;&lt;br /&gt;
        &amp;lt;winscore&amp;gt;4&amp;lt;/winscore&amp;gt;&lt;br /&gt;
        &amp;lt;loser&amp;gt;Italy&amp;lt;/loser&amp;gt;&lt;br /&gt;
        &amp;lt;losscore&amp;gt;1&amp;lt;/losscore&amp;gt;&lt;br /&gt;
    &amp;lt;/final&amp;gt;&lt;br /&gt;
&amp;lt;/worldcup&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Display XML content in HTML table==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!-- ***********************************************************&lt;br /&gt;
Example 5-12&lt;br /&gt;
&amp;quot;Dynamic HTML:The Definitive Reference&amp;quot;&lt;br /&gt;
2nd Edition&lt;br /&gt;
by Danny Goodman&lt;br /&gt;
Published by O&amp;quot;Reilly &amp;amp; Associates  ISBN 0-596-00316-1&lt;br /&gt;
http://www.oreilly.ru&lt;br /&gt;
Copyright 2002 Danny Goodman.  All Rights Reserved.&lt;br /&gt;
************************************************************ --&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Embedding External XML Data&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
body {background-color:#ffffff}&lt;br /&gt;
table {table-collapse:collapse; border-spacing:0}&lt;br /&gt;
td {border:2px groove black; padding:7px}&lt;br /&gt;
th {border:2px groove black; padding:7px}&lt;br /&gt;
.ctr {text-align:center}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;JavaScript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
// global reference to XML document object&lt;br /&gt;
var xDoc;&lt;br /&gt;
// Draw table from xDoc document tree data&lt;br /&gt;
function drawTable(tbody) {&lt;br /&gt;
    var tr, td, i, j, oneRecord;&lt;br /&gt;
    tbody = document.getElementById(tbody);&lt;br /&gt;
    // node tree&lt;br /&gt;
    var data = xDoc.getElementsByTagName(&amp;quot;season&amp;quot;)[0];&lt;br /&gt;
    // for td class attributes&lt;br /&gt;
    var classes = [&amp;quot;ctr&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;ctr&amp;quot;];&lt;br /&gt;
    for (i = 0; i &amp;lt; data.childNodes.length; i++) {&lt;br /&gt;
        // use only 1st level element nodes&lt;br /&gt;
        if (data.childNodes[i].nodeType == 1) {&lt;br /&gt;
            // one bowl record&lt;br /&gt;
            oneRecord = data.childNodes[i];&lt;br /&gt;
            tr = tbody.insertRow(tbody.rows.length);&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = oneRecord.getElementsByTagName(&amp;quot;number&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = oneRecord.getElementsByTagName(&amp;quot;year&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = oneRecord.getElementsByTagName(&amp;quot;winner&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = oneRecord.getElementsByTagName(&amp;quot;loser&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
            td = tr.insertCell(tr.cells.length);&lt;br /&gt;
            td.setAttribute(&amp;quot;class&amp;quot;,classes[tr.cells.length-1]);&lt;br /&gt;
            td.innerHTML = oneRecord.getElementsByTagName(&amp;quot;winscore&amp;quot;)[0].firstChild.nodeValue + &amp;quot; - &amp;quot; + oneRecord.getElementsByTagName(&amp;quot;losscore&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// verify that browser supports XML features and load external .xml file&lt;br /&gt;
function verifySupport(xFile) {&lt;br /&gt;
    if (document.implementation &amp;amp;&amp;amp; document.implementation.createDocument) {&lt;br /&gt;
        // this is the W3C DOM way, supported so far only in NN6&lt;br /&gt;
        xDoc = document.implementation.createDocument(&amp;quot;&amp;quot;, &amp;quot;theXdoc&amp;quot;, null);&lt;br /&gt;
    } else if (typeof ActiveXObject != &amp;quot;undefined&amp;quot;) {&lt;br /&gt;
        // make sure real object is supported (sorry, IE5/Mac)&lt;br /&gt;
        if (document.getElementById(&amp;quot;msxml&amp;quot;).async) {&lt;br /&gt;
            xDoc = new ActiveXObject(&amp;quot;Msxml.DOMDocument&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (xDoc &amp;amp;&amp;amp; typeof xDoc.load != &amp;quot;undefined&amp;quot;) {&lt;br /&gt;
        // load external file (from same domain)&lt;br /&gt;
        xDoc.load(xFile);&lt;br /&gt;
        return true;&lt;br /&gt;
    } else {&lt;br /&gt;
        var reply = confirm(&amp;quot;This example requires a browser with XML support, such as IE5+/Windows or Netscape 6+.\n \nGo back to previous page?&amp;quot;);&lt;br /&gt;
        if (reply) {&lt;br /&gt;
            history.back();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return false;&lt;br /&gt;
}&lt;br /&gt;
// initialize first time -- invoked onload&lt;br /&gt;
function init(xFile) {&lt;br /&gt;
    // confirm browser supports needed features and load .xml file&lt;br /&gt;
    if (verifySupport(xFile)) {&lt;br /&gt;
        // let file loading catch up to execution thread&lt;br /&gt;
        setTimeout(&amp;quot;drawTable(&amp;quot;bowlData&amp;quot;)&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body onload=&amp;quot;init(&amp;quot;superBowls.xml&amp;quot;);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Super Bowl Games&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;bowlGames&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thead&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Bowl&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Year&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Winner&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Loser&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Score (Win or Lose)&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/thead&amp;gt;&lt;br /&gt;
&amp;lt;tbody id=&amp;quot;bowlData&amp;quot;&amp;gt;&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!-- Try to load Msxml.DOMDocument ActiveX to assist support verification --&amp;gt;&lt;br /&gt;
&amp;lt;object id=&amp;quot;msxml&amp;quot; WIDTH=&amp;quot;1&amp;quot; HEIGHT=&amp;quot;1&amp;quot; classid=&amp;quot;CLSID:2933BF90-7B36-11d2-B20E-00C04F983E60&amp;quot; &amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==function loads the XML document from the specified URL==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Examples From&lt;br /&gt;
JavaScript: The Definitive Guide, Fourth Edition&lt;br /&gt;
Legal matters: these files were created by David Flanagan, and are&lt;br /&gt;
Copyright (c) 2001 by David Flanagan.  You may use, study, modify, and&lt;br /&gt;
distribute them for any purpose.  Please note that these examples are&lt;br /&gt;
provided &amp;quot;as-is&amp;quot; and come with no warranty of any kind.&lt;br /&gt;
David Flanagan&lt;br /&gt;
*/&lt;br /&gt;
&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Employee Data&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
// This function loads the XML document from the specified URL, and when&lt;br /&gt;
// it is fully loaded, passes that document and the url to the specified&lt;br /&gt;
// handler function.  This function works with any XML document&lt;br /&gt;
function loadXML(url, handler) {&lt;br /&gt;
    // Use the standard DOM Level 2 technique, if it is supported&lt;br /&gt;
    if (document.implementation &amp;amp;&amp;amp; document.implementation.createDocument) {&lt;br /&gt;
        // Create a new Document object&lt;br /&gt;
        var xmldoc = document.implementation.createDocument(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, null);&lt;br /&gt;
        // Specify what should happen when it finishes loading&lt;br /&gt;
        xmldoc.onload = function() { handler(xmldoc, url); }&lt;br /&gt;
        // And tell it what URL to load&lt;br /&gt;
        xmldoc.load(url);&lt;br /&gt;
    }&lt;br /&gt;
    // Otherwise use Microsoft&amp;quot;s proprietary API for Internet Explorer&lt;br /&gt;
    else if (window.ActiveXObject) { &lt;br /&gt;
        var xmldoc = new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);   // Create doc.&lt;br /&gt;
        xmldoc.onreadystatechange = function() {              // Specify onload&lt;br /&gt;
            if (xmldoc.readyState == 4) handler(xmldoc, url);&lt;br /&gt;
        }&lt;br /&gt;
        xmldoc.load(url);                                     // Start loading!&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// This function builds an HTML table of employees from data it reads from&lt;br /&gt;
// the XML document it is passed.&lt;br /&gt;
function makeTable(xmldoc, url) {&lt;br /&gt;
    // Create a &amp;lt;table&amp;gt; object and insert it into the document.&lt;br /&gt;
    var table = document.createElement(&amp;quot;table&amp;quot;);&lt;br /&gt;
    table.setAttribute(&amp;quot;border&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
    document.body.appendChild(table);&lt;br /&gt;
    // Use convenience methods of HTMLTableElement and related interfaces&lt;br /&gt;
    // to define a table caption and a header that gives a name to each column.&lt;br /&gt;
    var caption = &amp;quot;Employee Data from &amp;quot; + url;&lt;br /&gt;
    table.createCaption().appendChild(document.createTextNode(caption));&lt;br /&gt;
    var header = table.createTHead();&lt;br /&gt;
    var headerrow = header.insertRow(0);&lt;br /&gt;
    headerrow.insertCell(0).appendChild(document.createTextNode(&amp;quot;Name&amp;quot;));&lt;br /&gt;
    headerrow.insertCell(1).appendChild(document.createTextNode(&amp;quot;Job&amp;quot;));&lt;br /&gt;
    headerrow.insertCell(2).appendChild(document.createTextNode(&amp;quot;Salary&amp;quot;));&lt;br /&gt;
    &lt;br /&gt;
    // Now find all &amp;lt;employee&amp;gt; elements in our xmldoc document&lt;br /&gt;
    var employees = xmldoc.getElementsByTagName(&amp;quot;employee&amp;quot;);&lt;br /&gt;
    // Loop through these employee elements&lt;br /&gt;
    for(var i = 0; i &amp;lt; employees.length; i++) {&lt;br /&gt;
        // For each employee, get name, job, and salary data using standard DOM&lt;br /&gt;
        // methods.  The name comes from an attribute.  The other values are&lt;br /&gt;
        // in Text nodes within &amp;lt;job&amp;gt; and &amp;lt;salary&amp;gt; tags.&lt;br /&gt;
        var e = employees[i];&lt;br /&gt;
        var name = e.getAttribute(&amp;quot;name&amp;quot;);&lt;br /&gt;
        var job = e.getElementsByTagName(&amp;quot;job&amp;quot;)[0].firstChild.data;&lt;br /&gt;
        var salary = e.getElementsByTagName(&amp;quot;salary&amp;quot;)[0].firstChild.data;&lt;br /&gt;
        // Now that we have the employee data, use methods of the table to&lt;br /&gt;
        // create a new row and then use the methods of the row to create&lt;br /&gt;
        // new cells containing the data as text nodes.&lt;br /&gt;
        var row = table.insertRow(i+1);&lt;br /&gt;
        row.insertCell(0).appendChild(document.createTextNode(name));&lt;br /&gt;
        row.insertCell(1).appendChild(document.createTextNode(job));&lt;br /&gt;
        row.insertCell(2).appendChild(document.createTextNode(salary));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
The body of the document contains no static text; everything is dynamically&lt;br /&gt;
generated by the makeTable() function above.  The onload event handler starts&lt;br /&gt;
things off by calling loadXML() to load the XML data file.  Note the use of&lt;br /&gt;
location.search to encode the name of the xml file in the query string.  Load&lt;br /&gt;
this HTML file with a URL like this: DisplayEmployeeData.html?data.xml&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;body onload=&amp;quot;loadXML(location.search.substring(1), makeTable)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Loads a XML file and permits to access to the data it contains==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;HTML&amp;gt;&lt;br /&gt;
  &amp;lt;HEAD&amp;gt;&lt;br /&gt;
    &amp;lt;TITLE&amp;gt;JsLib 1.3 - Exemple - xml.js&amp;lt;/TITLE&amp;gt;&lt;br /&gt;
    &amp;lt;META HTTP-EQUIV=&amp;quot;Content-Type&amp;quot; CONTENT=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;META NAME=&amp;quot;Author&amp;quot; CONTENT=&amp;quot;Etienne CHEVILLARD&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;!-- xml.js --&amp;gt;&lt;br /&gt;
    &amp;lt;SCRIPT TYPE=&amp;quot;text/javascript&amp;quot; LANGUAGE=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
/* xml.js&lt;br /&gt;
 * Role : charge un fichier XML et permet d&amp;quot;acceder aux donnees qu&amp;quot;il contient&lt;br /&gt;
 * Projet : JsLib&lt;br /&gt;
 * Auteur : Etienne CHEVILLARD (echevillard@users.sourceforge.net)&lt;br /&gt;
 * Version : 1.3&lt;br /&gt;
 * Creation : 20/08/2004&lt;br /&gt;
 * Mise a jour : 23/02/2005&lt;br /&gt;
 * Bogues connues : - Opera 7 ignore les commentaires du fichier XML&lt;br /&gt;
 */&lt;br /&gt;
// --- Variables globales ---&lt;br /&gt;
// chargement du fichier XML&lt;br /&gt;
var xml_charge=false;&lt;br /&gt;
var xml_doc;&lt;br /&gt;
// --- Fonctions ---&lt;br /&gt;
// supprime les espaces qui commencent ou qui terminent la chaine specifiee&lt;br /&gt;
function xml_suppEsp(chaine) {&lt;br /&gt;
  var xdeb;&lt;br /&gt;
  var xfin;&lt;br /&gt;
  xdeb=chaine;&lt;br /&gt;
  xfin=chaine;&lt;br /&gt;
  for(var i=0; ((i&amp;lt;xdeb.length) &amp;amp;&amp;amp; (xdeb.charAt(i)==&amp;quot; &amp;quot;)); i++) {&lt;br /&gt;
    xfin=xfin.substring(1, xfin.length);&lt;br /&gt;
  }&lt;br /&gt;
  xdeb=xfin;&lt;br /&gt;
  for(var i=xdeb.length-1; ((i&amp;gt;=0) &amp;amp;&amp;amp; (xdeb.charAt(i)==&amp;quot; &amp;quot;)); i--)&lt;br /&gt;
    xfin=xfin.substring(0, xfin.length-1);&lt;br /&gt;
  return (xfin);&lt;br /&gt;
} // fin forms_suppEsp(chaine)&lt;br /&gt;
// indique si le navigateur accepte le XML&lt;br /&gt;
function accepteXML() {&lt;br /&gt;
  return ((document.implementation &amp;amp;&amp;amp; document.implementation.hasFeature &amp;amp;&amp;amp; document.implementation.hasFeature(&amp;quot;XML&amp;quot;, &amp;quot;1.0&amp;quot;))&lt;br /&gt;
    || (document.implementation &amp;amp;&amp;amp; document.implementation.createDocument)&lt;br /&gt;
    || (window.XMLHttpRequest)&lt;br /&gt;
    || (window.ActiveXObject)&lt;br /&gt;
    || (document.createElement &amp;amp;&amp;amp; document.childNodes));&lt;br /&gt;
} // fin accepteXML()&lt;br /&gt;
// charge en memoire le fichier XML d&amp;quot;URL specifiee&lt;br /&gt;
function chargerFichierXML(url) {&lt;br /&gt;
  if ((!url) || (url==&amp;quot;&amp;quot;)) return false;&lt;br /&gt;
  xml_charge=false;&lt;br /&gt;
  try {&lt;br /&gt;
    // implementation conforme au DOM du W3C (Firefox, Mozilla, Netscape)&lt;br /&gt;
    if (document.implementation &amp;amp;&amp;amp; document.implementation.createDocument) {&lt;br /&gt;
      xml_doc=document.implementation.createDocument(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, null);&lt;br /&gt;
      xml_doc.onload=function () { xml_charge=true; }&lt;br /&gt;
      xml_doc.load(url);&lt;br /&gt;
    // implementation avec objet XMLHttpRequest&lt;br /&gt;
    } else if (window.XMLHttpRequest) {&lt;br /&gt;
      xml_doc=new XMLHttpRequest();&lt;br /&gt;
      xml_doc.onreadystatechange=function () { if (xml_doc.readyState==4) xml_charge=true; }&lt;br /&gt;
      xml_doc.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;
      xml_doc.send(null);&lt;br /&gt;
    // implementation avec ActiveX (Internet Explorer)&lt;br /&gt;
    } else if (window.ActiveXObject) {&lt;br /&gt;
      xml_doc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
      xml_doc.onreadystatechange=function () { if (xml_doc.readyState==4) xml_charge=true; }&lt;br /&gt;
      xml_doc.load(url);&lt;br /&gt;
    // implementation avec un objet IFRAME et une division cachee (Opera 7)&lt;br /&gt;
    } else if (document.createElement &amp;amp;&amp;amp; document.childNodes) {&lt;br /&gt;
      var ndiv=document.createElement(&amp;quot;DIV&amp;quot;);&lt;br /&gt;
      ndiv.id=&amp;quot;jslib_xml_div&amp;quot;;&lt;br /&gt;
      ndiv.style.position=&amp;quot;absolute&amp;quot;;&lt;br /&gt;
      ndiv.style.visibility=&amp;quot;hidden&amp;quot;;&lt;br /&gt;
      ndiv.innerHTML = &amp;quot;&amp;lt;iframe onLoad=\&amp;quot;xml_doc=window.frames.jslib_xml_ifr.window.document; xml_charge=true;\&amp;quot;&amp;quot;&lt;br /&gt;
        + &amp;quot; name=\&amp;quot;jslib_xml_ifr\&amp;quot; src=\&amp;quot;&amp;quot; + url + &amp;quot;\&amp;quot;&amp;gt;&amp;lt;\/iframe&amp;gt;&amp;quot;;&lt;br /&gt;
      document.body.appendChild(ndiv);&lt;br /&gt;
    } else {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  } catch (e) {&lt;br /&gt;
    return false;&lt;br /&gt;
  }&lt;br /&gt;
  return true;&lt;br /&gt;
} // fin chargerFichierXML(url)&lt;br /&gt;
// compte le nombre de noeuds XML de nom specifie&lt;br /&gt;
function compterNoeuds(nomNoeud) {&lt;br /&gt;
  if (!xml_charge) return 0;&lt;br /&gt;
  if ((!nomNoeud) || (nomNoeud==&amp;quot;&amp;quot;)) return 0;&lt;br /&gt;
  var elts=xml_doc.getElementsByTagName(nomNoeud);&lt;br /&gt;
  return (parseInt(elts.length));&lt;br /&gt;
} // fin compterNoeuds(nomNoeud)&lt;br /&gt;
// retourne les commentaires du document XML&lt;br /&gt;
function obtenirCommentaires() {&lt;br /&gt;
  if (!xml_charge) return &amp;quot;&amp;quot;;&lt;br /&gt;
  var elts=xml_doc.childNodes;&lt;br /&gt;
  var txt=&amp;quot;&amp;quot;;&lt;br /&gt;
  if (elts.length&amp;lt;1) return txt;&lt;br /&gt;
  for (var i=0; i&amp;lt;elts.length; i++) {&lt;br /&gt;
    if (parseInt(elts[i].nodeType)==8) {&lt;br /&gt;
      if (txt!=&amp;quot;&amp;quot;) txt+=&amp;quot;\n&amp;quot;;&lt;br /&gt;
      txt+=xml_suppEsp(elts[i].nodeValue);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return txt;&lt;br /&gt;
} // fin obtenirCommentaires()&lt;br /&gt;
// retourne le premier noeud XML de nom et de valeur specifies&lt;br /&gt;
function obtenirNoeud(nomNoeud, valeurNoeud) {&lt;br /&gt;
  if (!xml_charge) return;&lt;br /&gt;
  if ((!nomNoeud) || (nomNoeud==&amp;quot;&amp;quot;)) return;&lt;br /&gt;
  var elts=xml_doc.getElementsByTagName(nomNoeud);&lt;br /&gt;
  if (elts.length&amp;lt;1) return;&lt;br /&gt;
  for (var i=0; i&amp;lt;elts.length; i++) {&lt;br /&gt;
    if (parseInt(elts[i].nodeType)==1) {&lt;br /&gt;
      if ((!valeurNoeud) || (obtenirValeurNoeud(elts[i])==valeurNoeud))&lt;br /&gt;
        return (elts[i]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return;&lt;br /&gt;
} // fin obtenirNoeud(nomNoeud, valeurNoeud)&lt;br /&gt;
// retourne le noeud fils de nom specifie du noeud XML passe en parametre&lt;br /&gt;
function obtenirNoeudFils(noeud, nomFils) {&lt;br /&gt;
  if (!xml_charge) return;&lt;br /&gt;
  if (!noeud) return;&lt;br /&gt;
  if ((!nomFils) || (nomFils==&amp;quot;&amp;quot;)) return;&lt;br /&gt;
  var elts=noeud.childNodes;&lt;br /&gt;
  if (elts.length&amp;lt;1) return;&lt;br /&gt;
  for (var i=0; i&amp;lt;elts.length; i++) {&lt;br /&gt;
    if ((parseInt(elts[i].nodeType)==1)&lt;br /&gt;
      &amp;amp;&amp;amp; (obtenirNomNoeud(elts[i])==nomFils))&lt;br /&gt;
      return elts[i];&lt;br /&gt;
  }&lt;br /&gt;
  return;&lt;br /&gt;
} // fin obtenirNoeudFils(noeud, nomFils)&lt;br /&gt;
// retourne le noeud pere du noeud XML passe en parametre&lt;br /&gt;
function obtenirNoeudPere(noeud) {&lt;br /&gt;
  if (!xml_charge) return;&lt;br /&gt;
  if (!noeud) return;&lt;br /&gt;
  if (noeud.parentNode) return (noeud.parentNode);&lt;br /&gt;
  return;&lt;br /&gt;
} // fin obtenirNoeudPere(noeud)&lt;br /&gt;
// retourne le noeud XML racine du document XML&lt;br /&gt;
function obtenirNoeudRacine() {&lt;br /&gt;
  if (!xml_charge) return;&lt;br /&gt;
  var elts=xml_doc.childNodes;&lt;br /&gt;
  if (elts.length&amp;lt;1) return;&lt;br /&gt;
  for (var i=0; i&amp;lt;elts.length; i++) {&lt;br /&gt;
    if (parseInt(elts[i].nodeType)==1)&lt;br /&gt;
      return(elts[i]);&lt;br /&gt;
  }&lt;br /&gt;
  return;&lt;br /&gt;
} // fin obtenirNoeudRacine()&lt;br /&gt;
// retourne le nom du noeud XML passe en parametre&lt;br /&gt;
function obtenirNomNoeud(noeud) {&lt;br /&gt;
  if (!xml_charge) return &amp;quot;&amp;quot;;&lt;br /&gt;
  if (!noeud) return &amp;quot;&amp;quot;;&lt;br /&gt;
  if (noeud.nodeName) return (noeud.nodeName);&lt;br /&gt;
  if (noeud.name) return (noeud.name);&lt;br /&gt;
  return &amp;quot;&amp;quot;;&lt;br /&gt;
} // fin obtenirNomNoeud(noeud)&lt;br /&gt;
// retourne la valeur de l&amp;quot;attribut specifie du noeud XML passe en parametre&lt;br /&gt;
function obtenirValeurAttribut(noeud, attribut) {&lt;br /&gt;
  if (!xml_charge) return &amp;quot;&amp;quot;;&lt;br /&gt;
  if (!noeud) return &amp;quot;&amp;quot;;&lt;br /&gt;
  if ((!attribut) || (attribut==&amp;quot;&amp;quot;)) return &amp;quot;&amp;quot;;&lt;br /&gt;
  if (noeud.getAttribute(attribut)) return noeud.getAttribute(attribut);&lt;br /&gt;
  if (noeud.attributes[attribut]) return noeud.attributes[attribut].value;&lt;br /&gt;
  return &amp;quot;&amp;quot;;&lt;br /&gt;
} // fin obtenirValeurAttribut(noeud, attribut)&lt;br /&gt;
// retourne la valeur du noeud XML passe en parametre&lt;br /&gt;
function obtenirValeurNoeud(noeud) {&lt;br /&gt;
  if (!xml_charge) return &amp;quot;&amp;quot;;&lt;br /&gt;
  if ((!noeud) || (!noeud.firstChild)) return &amp;quot;&amp;quot;;&lt;br /&gt;
  if (noeud.firstChild.nodeValue) return (xml_suppEsp(noeud.firstChild.nodeValue));&lt;br /&gt;
  if (noeud.firstChild.data) return (xml_suppEsp(noeud.firstChild.data));&lt;br /&gt;
  return &amp;quot;&amp;quot;;&lt;br /&gt;
} // fin obtenirValeurNoeud(noeud)&lt;br /&gt;
// retourne le premier noeud XML dont la valeur contient la chaine specifiee&lt;br /&gt;
function rechercherNoeud(nomNoeud, valeurNoeud) {&lt;br /&gt;
  if (!xml_charge) return;&lt;br /&gt;
  if ((!nomNoeud) || (nomNoeud==&amp;quot;&amp;quot;)) return;&lt;br /&gt;
  if (!valeurNoeud) valeurNoeud=&amp;quot;&amp;quot;;&lt;br /&gt;
  var elts=xml_doc.getElementsByTagName(nomNoeud);&lt;br /&gt;
  if (elts.length&amp;lt;1) return;&lt;br /&gt;
  for (var i=0; i&amp;lt;elts.length; i++) {&lt;br /&gt;
    if (parseInt(elts[i].nodeType)==1) {&lt;br /&gt;
      if (obtenirValeurNoeud(elts[i]).toLowerCase().indexOf(valeurNoeud.toLowerCase())&amp;gt;=0)&lt;br /&gt;
        return (elts[i]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return;&lt;br /&gt;
} // fin rechercherNoeud(nomNoeud, valeurNoeud)&lt;br /&gt;
// retourne le premier noeud XML dont l&amp;quot;attribut specifie contient la chaine specifiee&lt;br /&gt;
function rechercherNoeudParAttribut(nomNoeud, attribut, valeurAttribut) {&lt;br /&gt;
  if (!xml_charge) return;&lt;br /&gt;
  if ((!nomNoeud) || (nomNoeud==&amp;quot;&amp;quot;)) return;&lt;br /&gt;
  if ((!attribut) || (attribut==&amp;quot;&amp;quot;)) return;&lt;br /&gt;
  if (!valeurAttribut) valeurAttribut=&amp;quot;&amp;quot;;&lt;br /&gt;
  var elts=xml_doc.getElementsByTagName(nomNoeud);&lt;br /&gt;
  if (elts.length&amp;lt;1) return;&lt;br /&gt;
  for (var i=0; i&amp;lt;elts.length; i++) {&lt;br /&gt;
    if (parseInt(elts[i].nodeType)==1) {&lt;br /&gt;
      if (obtenirValeurAttribut(elts[i], attribut).toLowerCase().indexOf(valeurAttribut.toLowerCase())&amp;gt;=0)&lt;br /&gt;
        return (elts[i]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return;&lt;br /&gt;
} // fin rechercherNoeudParAttribut(nomNoeud, attribut, valeurAttribut)&lt;br /&gt;
// verifie que le fichier XML est totalement charge en memoire&lt;br /&gt;
function verifierChargementXML() {&lt;br /&gt;
  return (xml_charge);&lt;br /&gt;
} // fin verifierChargementXML()&lt;br /&gt;
    &amp;lt;/SCRIPT&amp;gt;&lt;br /&gt;
  &amp;lt;/HEAD&amp;gt;&lt;br /&gt;
  &amp;lt;BODY&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;H1&amp;gt;JsLib 1.3&amp;lt;/H1&amp;gt;&lt;br /&gt;
    &amp;lt;HR&amp;gt;&lt;br /&gt;
    &amp;lt;H2&amp;gt;Exemple - xml.js&amp;lt;/H2&amp;gt;&lt;br /&gt;
    &amp;lt;NOSCRIPT&amp;gt;&lt;br /&gt;
      &amp;lt;P&amp;gt;&amp;lt;I&amp;gt;Erreur : votre navigateur ne reconnait pas le Javascript ou est configur&amp;amp;eacute; pour ne&lt;br /&gt;
      pas prendre en compte le code Javascript. Dans ce dernier cas, vous pouvez modifier la&lt;br /&gt;
      configuration dans les pr&amp;amp;eacute;f&amp;amp;eacute;rences/options de votre navigateur.&amp;lt;/I&amp;gt;&lt;br /&gt;
      &amp;lt;HR&amp;gt;&lt;br /&gt;
    &amp;lt;/NOSCRIPT&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;P&amp;gt;Est-ce que votre navigateur prend en charge le XML ?&lt;br /&gt;
      &amp;lt;SCRIPT TYPE=&amp;quot;text/javascript&amp;quot; LANGUAGE=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
        if (accepteXML()) document.write(&amp;quot;oui&amp;quot;);&lt;br /&gt;
        else document.write(&amp;quot;non&amp;quot;);&lt;br /&gt;
      &amp;lt;/SCRIPT&amp;gt;&lt;br /&gt;
    &amp;lt;FORM ACTION=&amp;quot;GET&amp;quot; NAME=&amp;quot;f1&amp;quot; onSubmit=&amp;quot;return false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;P&amp;gt;Charger le fichier &amp;quot;europe.xml&amp;quot;&amp;amp;nbsp;:&lt;br /&gt;
        &amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b1&amp;quot; VALUE=&amp;quot;Charger&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;alert(chargerFichierXML(&amp;quot;./extra/europe.xml&amp;quot;));&amp;quot;&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
      &amp;lt;P&amp;gt;V&amp;amp;eacute;rifier le chargement du fichier &amp;quot;europe.xml&amp;quot;&amp;amp;nbsp;:&lt;br /&gt;
        &amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b2&amp;quot; VALUE=&amp;quot;V&amp;amp;eacute;rifier&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;if (verifierChargementXML()) alert(&amp;quot;Chargement des donn&amp;amp;eacute;es OK.&amp;quot;);&lt;br /&gt;
                    else alert(&amp;quot;Chargement des donn&amp;amp;eacute;es incomplet.&amp;quot;);&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;P&amp;gt;Commentaires du document XML&amp;amp;nbsp;:&lt;br /&gt;
        &amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b3&amp;quot; VALUE=&amp;quot;Afficher&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;alert(obtenirCommentaires());&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;P&amp;gt;Nom du noeud racine du document XML&amp;amp;nbsp;:&lt;br /&gt;
        &amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b4&amp;quot; VALUE=&amp;quot;Afficher&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;alert(obtenirNomNoeud(obtenirNoeudRacine()));&amp;quot;&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &amp;lt;P&amp;gt;Valeur du premier noeud de nom &amp;quot;etat&amp;quot;&amp;amp;nbsp;:&lt;br /&gt;
        &amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b5&amp;quot; VALUE=&amp;quot;Afficher&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;alert(obtenirValeurNoeud(obtenirNoeud(&amp;quot;etat&amp;quot;)));&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;P&amp;gt;Valeur du premier noeud de nom &amp;quot;etat&amp;quot; fils du noeud racine du document XML&amp;amp;nbsp;:&lt;br /&gt;
        &amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b6&amp;quot; VALUE=&amp;quot;Afficher&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;alert(obtenirValeurNoeud(obtenirNoeudFils(obtenirNoeudRacine(), &amp;quot;etat&amp;quot;)));&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
      &amp;lt;P&amp;gt;Nom du noeud p&amp;amp;egrave;re du premier noeud de nom &amp;quot;etat&amp;quot;&amp;amp;nbsp;:&lt;br /&gt;
        &amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b7&amp;quot; VALUE=&amp;quot;Afficher&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;alert(obtenirNomNoeud(obtenirNoeudPere(obtenirNoeud(&amp;quot;etat&amp;quot;))));&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
      &amp;lt;P&amp;gt;Compter le nombre de noeuds de nom &amp;quot;etat&amp;quot;&amp;amp;nbsp;:&lt;br /&gt;
        &amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b8&amp;quot; VALUE=&amp;quot;Compter&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;alert(compterNoeuds(&amp;quot;etat&amp;quot;));&amp;quot;&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
      &amp;lt;P&amp;gt;Rechercher l&amp;quot;ann&amp;amp;eacute;e d&amp;quot;entr&amp;amp;eacute;e dans l&amp;quot;Union d&amp;quot;un Etat europ&amp;amp;eacute;en&lt;br /&gt;
        en fonction de son nom&amp;amp;nbsp;:&lt;br /&gt;
      &amp;lt;TABLE SUMMARY=&amp;quot;table&amp;quot; BORDER=0 CELLSPACING=5 CELLPADDING=5&amp;gt;&amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;Etat&amp;amp;nbsp;:&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;&amp;lt;INPUT TYPE=TEXT NAME=&amp;quot;t1&amp;quot; VALUE=&amp;quot;Allemagne&amp;quot; SIZE=40 MAXLENGTH=40&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;&amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b9&amp;quot; VALUE=&amp;quot;Rechercher&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;document.f1.t2.value=obtenirValeurAttribut(rechercherNoeud(&amp;quot;etat&amp;quot;, document.f1.t1.value), &amp;quot;entree&amp;quot;);&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;Entr&amp;amp;eacute;e dans l&amp;quot;Union&amp;amp;nbsp;:&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;&amp;lt;INPUT TYPE=TEXT NAME=&amp;quot;t2&amp;quot; VALUE=&amp;quot;&amp;quot; SIZE=4&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
          &lt;br /&gt;
      &amp;lt;P&amp;gt;Rechercher un Etat europ&amp;amp;eacute;en en fonction de sa capitale&amp;amp;nbsp;:&lt;br /&gt;
      &amp;lt;TABLE SUMMARY=&amp;quot;table&amp;quot; BORDER=0 CELLSPACING=5 CELLPADDING=5&amp;gt;&amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;Capitale&amp;amp;nbsp;:&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;&amp;lt;INPUT TYPE=TEXT NAME=&amp;quot;t3&amp;quot; VALUE=&amp;quot;Riga&amp;quot; SIZE=40 MAXLENGTH=40&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;&amp;lt;INPUT TYPE=BUTTON NAME=&amp;quot;b10&amp;quot; VALUE=&amp;quot;Rechercher&amp;quot;&lt;br /&gt;
          onClick=&amp;quot;document.f1.t4.value=obtenirValeurNoeud(rechercherNoeudParAttribut(&amp;quot;etat&amp;quot;, &amp;quot;capitale&amp;quot;, document.f1.t3.value));&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;Etat&amp;amp;nbsp;:&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;&amp;lt;INPUT TYPE=TEXT NAME=&amp;quot;t4&amp;quot; VALUE=&amp;quot;&amp;quot; SIZE=40&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
      &amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
    &amp;lt;/FORM&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/BODY&amp;gt;&lt;br /&gt;
&amp;lt;/HTML&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==XML to JavaScript==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 // convert XML data into JavaScript array of JavaScript objects&lt;br /&gt;
function XML2JS(xmlDoc, containerTag) {&lt;br /&gt;
    var output = new Array();&lt;br /&gt;
    var rawData = xmlDoc.getElementsByTagName(containerTag)[0];&lt;br /&gt;
    var i, j, oneRecord, oneObject;&lt;br /&gt;
    for (i = 0; i &amp;lt; rawData.childNodes.length; i++) {&lt;br /&gt;
        if (rawData.childNodes[i].nodeType == 1) {&lt;br /&gt;
            oneRecord = rawData.childNodes[i];&lt;br /&gt;
            oneObject = output[output.length] = new Object();&lt;br /&gt;
            for (j = 0; j &amp;lt; oneRecord.childNodes.length; j++) {&lt;br /&gt;
                if (oneRecord.childNodes[j].nodeType == 1) {&lt;br /&gt;
                    oneObject[oneRecord.childNodes[j].tagName] = &lt;br /&gt;
                        oneRecord.childNodes[j].firstChild.nodeValue;    &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return output;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>