Ajax解析xml文件

 

先新建一个html文件,代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Ajax解析XML文件</title>
<script type="text/javascript">
    function loadXMLDoc(url) {
        var xmlhttp;
        var txt, x, xx, i;
        if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                txt = "<table border='1'><tr><th>Title</th><th>Artist</th><th>COUNTRY</th><th>COMPANY</th><th>PRICE</th><th>YEAR</th></tr>";
                x = xmlhttp.responseXML.documentElement.getElementsByTagName("CD");
                for (i = 0; i < x.length; i++) {
                    txt = txt + "<tr>";
                    xx = x[i].getElementsByTagName("TITLE");
                    {
                        try {
                            txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                        }
                        catch (er) {
                            txt = txt + "<td> </td>";
                        }
                    }
                    xx = x[i].getElementsByTagName("ARTIST");
                    {
                        try {
                            txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                        }
                        catch (er) {
                            txt = txt + "<td> </td>";
                        }
                    }
                    xx = x[i].getElementsByTagName("COUNTRY");
                    {
                        try {
                            txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                        }
                        catch (er) {
                            txt = txt + "<td> </td>";
                        }
                    }
                    xx = x[i].getElementsByTagName("COMPANY");
                    {
                        try {
                            txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                        }
                        catch (er) {
                            txt = txt + "<td> </td>";
                        }
                    }
                    xx = x[i].getElementsByTagName("PRICE");
                    {
                        try {
                            txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                        }
                        catch (er) {
                            txt = txt + "<td> </td>";
                        }
                    }
                    xx = x[i].getElementsByTagName("YEAR");
                    {
                        try {
                            txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                        }
                        catch (er) {
                            txt = txt + "<td> </td>";
                        }
                    }
                    txt = txt + "</tr>";
                }
                txt = txt + "</table>";
                document.getElementById('txtCDInfo').innerHTML = txt;
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send();
    }
</script>
</head>
<body>
<div id="txtCDInfo">
<button onclick="loadXMLDoc('cd_catalog.xml')">获得 CD 信息</button>
</div>
</body>
</html>

 

xml文件:

  1 <?xml version="1.0" encoding="iso-8859-1" ?>
  2  <!--  Edited with XML Spy v2007 (http://www.altova.com) 
  3   -->
  4  <CATALOG>
  5    <CD>
  6     <TITLE>Empire Burlesque</TITLE>
  7     <ARTIST>Bob Dylan</ARTIST>
  8     <COUNTRY>USA</COUNTRY>
  9     <COMPANY>Columbia</COMPANY>
 10     <PRICE>10.90</PRICE>
 11     <YEAR>1985</YEAR>
 12   </CD>
 13    <CD>
 14     <TITLE>Hide your heart</TITLE>
 15     <ARTIST>Bonnie Tyler</ARTIST>
 16     <COUNTRY>UK</COUNTRY>
 17     <COMPANY>CBS Records</COMPANY>
 18     <PRICE>9.90</PRICE>
 19     <YEAR>1988</YEAR>
 20   </CD>
 21    <CD>
 22     <TITLE>Greatest Hits</TITLE>
 23     <ARTIST>Dolly Parton</ARTIST>
 24     <COUNTRY>USA</COUNTRY>
 25     <COMPANY>RCA</COMPANY>
 26     <PRICE>9.90</PRICE>
 27     <YEAR>1982</YEAR>
 28   </CD>
 29    <CD>
 30     <TITLE>Still got the blues</TITLE>
 31     <ARTIST>Gary Moore</ARTIST>
 32     <COUNTRY>UK</COUNTRY>
 33     <COMPANY>Virgin records</COMPANY>
 34     <PRICE>10.20</PRICE>
 35     <YEAR>1990</YEAR>
 36   </CD>
 37    <CD>
 38     <TITLE>Eros</TITLE>
 39     <ARTIST>Eros Ramazzotti</ARTIST>
 40     <COUNTRY>EU</COUNTRY>
 41     <COMPANY>BMG</COMPANY>
 42     <PRICE>9.90</PRICE>
 43     <YEAR>1997</YEAR>
 44   </CD>
 45   - <CD>
 46     <TITLE>One night only</TITLE>
 47     <ARTIST>Bee Gees</ARTIST>
 48     <COUNTRY>UK</COUNTRY>
 49     <COMPANY>Polydor</COMPANY>
 50     <PRICE>10.90</PRICE>
 51     <YEAR>1998</YEAR>
 52   </CD>
 53    <CD>
 54     <TITLE>Sylvias Mother</TITLE>
 55     <ARTIST>Dr.Hook</ARTIST>
 56     <COUNTRY>UK</COUNTRY>
 57     <COMPANY>CBS</COMPANY>
 58     <PRICE>8.10</PRICE>
 59     <YEAR>1973</YEAR>
 60   </CD>
 61    <CD>
 62     <TITLE>Maggie May</TITLE>
 63     <ARTIST>Rod Stewart</ARTIST>
 64     <COUNTRY>UK</COUNTRY>
 65     <COMPANY>Pickwick</COMPANY>
 66     <PRICE>8.50</PRICE>
 67     <YEAR>1990</YEAR>
 68   </CD>
 69    <CD>
 70     <TITLE>Romanza</TITLE>
 71     <ARTIST>Andrea Bocelli</ARTIST>
 72     <COUNTRY>EU</COUNTRY>
 73     <COMPANY>Polydor</COMPANY>
 74     <PRICE>10.80</PRICE>
 75     <YEAR>1996</YEAR>
 76   </CD>
 77    <CD>
 78     <TITLE>When a man loves a woman</TITLE>
 79     <ARTIST>Percy Sledge</ARTIST>
 80     <COUNTRY>USA</COUNTRY>
 81     <COMPANY>Atlantic</COMPANY>
 82     <PRICE>8.70</PRICE>
 83     <YEAR>1987</YEAR>
 84   </CD>
 85    <CD>
 86     <TITLE>Black angel</TITLE>
 87     <ARTIST>Savage Rose</ARTIST>
 88     <COUNTRY>EU</COUNTRY>
 89     <COMPANY>Mega</COMPANY>
 90     <PRICE>10.90</PRICE>
 91     <YEAR>1995</YEAR>
 92   </CD>
 93    <CD>
 94     <TITLE>1999 Grammy Nominees</TITLE>
 95     <ARTIST>Many</ARTIST>
 96     <COUNTRY>USA</COUNTRY>
 97     <COMPANY>Grammy</COMPANY>
 98     <PRICE>10.20</PRICE>
 99     <YEAR>1999</YEAR>
100   </CD>
101    <CD>
102     <TITLE>For the good times</TITLE>
103     <ARTIST>Kenny Rogers</ARTIST>
104     <COUNTRY>UK</COUNTRY>
105     <COMPANY>Mucik Master</COMPANY>
106     <PRICE>8.70</PRICE>
107     <YEAR>1995</YEAR>
108   </CD>
109    <CD>
110     <TITLE>Big Willie style</TITLE>
111     <ARTIST>Will Smith</ARTIST>
112     <COUNTRY>USA</COUNTRY>
113     <COMPANY>Columbia</COMPANY>
114     <PRICE>9.90</PRICE>
115     <YEAR>1997</YEAR>
116   </CD>
117    <CD>
118     <TITLE>Tupelo Honey</TITLE>
119     <ARTIST>Van Morrison</ARTIST>
120     <COUNTRY>UK</COUNTRY>
121     <COMPANY>Polydor</COMPANY>
122     <PRICE>8.20</PRICE>
123     <YEAR>1971</YEAR>
124   </CD>
125    <CD>
126     <TITLE>The very best of</TITLE>
127     <ARTIST>Cat Stevens</ARTIST>
128     <COUNTRY>UK</COUNTRY>
129     <COMPANY>Island</COMPANY>
130     <PRICE>8.90</PRICE>
131     <YEAR>1990</YEAR>
132   </CD>
133    <CD>
134     <TITLE>Stop</TITLE>
135     <ARTIST>Sam Brown</ARTIST>
136     <COUNTRY>UK</COUNTRY>
137     <COMPANY>A and M</COMPANY>
138     <PRICE>8.90</PRICE>
139     <YEAR>1988</YEAR>
140   </CD>
141    <CD>
142     <TITLE>Bridge of Spies</TITLE>
143     <ARTIST>T'Pau</ARTIST>
144     <COUNTRY>UK</COUNTRY>
145     <COMPANY>Siren</COMPANY>
146     <PRICE>7.90</PRICE>
147     <YEAR>1987</YEAR>
148   </CD>
149    <CD>
150     <TITLE>Private Dancer</TITLE>
151     <ARTIST>Tina Turner</ARTIST>
152     <COUNTRY>UK</COUNTRY>
153     <COMPANY>Capitol</COMPANY>
154     <PRICE>8.90</PRICE>
155     <YEAR>1983</YEAR>
156   </CD>
157    <CD>
158     <TITLE>Midt om natten</TITLE>
159     <ARTIST>Kim Larsen</ARTIST>
160     <COUNTRY>EU</COUNTRY>
161     <COMPANY>Medley</COMPANY>
162     <PRICE>7.80</PRICE>
163     <YEAR>1983</YEAR>
164   </CD>
165    <CD>
166     <TITLE>Pavarotti Gala Concert</TITLE>
167     <ARTIST>Luciano Pavarotti</ARTIST>
168     <COUNTRY>UK</COUNTRY>
169     <COMPANY>DECCA</COMPANY>
170     <PRICE>9.90</PRICE>
171     <YEAR>1991</YEAR>
172   </CD>
173    <CD>
174     <TITLE>The dock of the bay</TITLE>
175     <ARTIST>Otis Redding</ARTIST>
176     <COUNTRY>USA</COUNTRY>
177     <COMPANY>Atlantic</COMPANY>
178     <PRICE>7.90</PRICE>
179     <YEAR>1987</YEAR>
180   </CD>
181    <CD>
182     <TITLE>Picture book</TITLE>
183     <ARTIST>Simply Red</ARTIST>
184     <COUNTRY>EU</COUNTRY>
185     <COMPANY>Elektra</COMPANY>
186     <PRICE>7.20</PRICE>
187     <YEAR>1985</YEAR>
188   </CD>
189    <CD>
190     <TITLE>Red</TITLE>
191     <ARTIST>The Communards</ARTIST>
192     <COUNTRY>UK</COUNTRY>
193     <COMPANY>London</COMPANY>
194     <PRICE>7.80</PRICE>
195     <YEAR>1987</YEAR>
196   </CD>
197    <CD>
198     <TITLE>Unchain my heart</TITLE>
199     <ARTIST>Joe Cocker</ARTIST>
200     <COUNTRY>USA</COUNTRY>
201     <COMPANY>EMI</COMPANY>
202     <PRICE>8.20</PRICE>
203     <YEAR>1987</YEAR>
204   </CD>
205 </CATALOG>
View Code

 

本文参考http://www.w3school.com.cn/ajax/ajax_xmlfile.asp

posted @ 2014-06-24 22:00  FancyYOYO  阅读(170)  评论(0编辑  收藏  举报