This chapter explains how to display XML data as HTML. Display XML Data in HTML In the last chapter, we explained how to parse XML and acc...
This chapter explains how to display XML data as HTML.
Display XML Data in HTML
In the last chapter, we explained how to parse XML and access the DOM with JavaScript.In this example, we loop through an XML file (cd_catalog.xml), and display each CD element as an HTML table row:
<html> <body> <script type="text/javascript"> var xmlDoc=null; if (window.ActiveXObject) {// code for IE xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } else if (document.implementation.createDocument) {// code for Mozilla, Firefox, Opera, etc. xmlDoc=document.implementation.createDocument ("","",null); } else { alert('Your browser cannot handle this script'); } if (xmlDoc!=null) { xmlDoc.async=false; xmlDoc.load("cd_catalog.xml"); document.write("<table border='1'>"); var x=xmlDoc.getElementsByTagName( "CD"); for (i=0;i<x.length;i++) { document.write("<tr>"); document.write("<td>"); document.write( x[i].getElementsByTagName ("ARTIST")[0].childNodes[0].nodeValue); document.write("</td>"); document.write("<td>"); document.write( x[i].getElementsByTagName ("TITLE")[0].childNodes[0].nodeValue); document.write("</td>"); document.write("</tr>"); } document.write("</table>"); } </script> </body> </html> |
Example explained
- We check the browser, and load the XML using the correct parser
- We create an HTML table with <table border="1">
- We use getElementsByTagName() to get all XML CD nodes
- For each CD node, we display data from ARTIST and TITLE as table data.
- We end the table with </table>
Access Across Domains
For security reasons, modern browsers does not allow access across domains.This means, that both the web page and the XML file it tries to load, must be located on the same server.
The examples on 1000sourcecodes all open XML files located on the 1000sourcecodes domain.
If you want to use the example above on one of your web pages, the XML files you load must be located on your own server. Otherwise the xmlDoc.load() method, will generate the error "Access is denied".