XML to HTML
本章講解如何把 XML 數(shù)據(jù)顯示為 HTML。
在 HTML 中顯示 XML 數(shù)據(jù)
在上一節(jié)中,我們講解了如何通過(guò) JavaScript 來(lái)解析 XML 并訪問(wèn) DOM。
本例遍歷一個(gè) XML 文件 (cd_catalog.xml),然后把每個(gè) CD 元素顯示為一個(gè) HTML 表格行:
<html> <body> <script type="text/javascript"> if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","cd_catalog.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; document.write("<table border='1'>"); var x=xmlDoc.getElementsByTagName("CD"); for (i=0;i<x.length;i++) { document.write("<tr><td>"); document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue); document.write("</td><td>"); document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue); document.write("</td></tr>"); } document.write("</table>"); </script> </body> </html>
TIY:在 HTML 表格中顯示 XML 數(shù)據(jù)。
例子解釋?zhuān)?/h3>
- 檢測(cè)瀏覽器,然后使用合適的解析器來(lái)加載 XML
- 創(chuàng)建一個(gè) HTML 表格(<table border="1">)
- 使用 getElementsByTagName() 來(lái)獲得所有 XML 的 CD 節(jié)點(diǎn)
- 針對(duì)每個(gè) CD 節(jié)點(diǎn),把 ARTIST 和 TITLE 中的數(shù)據(jù)顯示為表格數(shù)據(jù)
- 用 </table> 結(jié)束表格
如需更多有關(guān) JavaScript 和 XML DOM 的信息,請(qǐng)?jiān)L問(wèn)我們的 XML DOM 教程。
跨域訪問(wèn)
出于安全方面的原因,現(xiàn)代的瀏覽器不允許跨域的訪問(wèn)。
這意味著,網(wǎng)頁(yè)以及它試圖加載的 XML 文件,都必須位于相同的服務(wù)器上。
W3School 的實(shí)例所打開(kāi)的 XML 文件位于 W3School 的域上。
假如你打算在自己的網(wǎng)頁(yè)上使用上面的例子,則必須把 XML 文件放到自己的服務(wù)器上。否則,xmlDoc.load() 將產(chǎn)生錯(cuò)誤 "Access is denied"。