file: loadxml.js
XML.load = function(url) { var xmldoc = XML.newDocument(); xmldoc.async = false; xmldoc.load(url); return xmldoc; }; XML.newDocument = function(rootTagName, namespaceURL) { if (!rootTagName) rootTagName = ""; if (!namespaceURL) namespaceURL = ""; if (document.implementation && document.implementation.createDocument) { // This is the W3C standard way to do it return document.implementation.createDocument(namespaceURL, rootTagName, null); } else { // This is the IE way to do it // Create an empty document as an ActiveX object // If there is no root element, this is all we have to do var doc = new ActiveXObject("MSXML2.DOMDocument"); // If there is a root tag, initialize the document if (rootTagName) { // Look for a namespace prefix var prefix = ""; var tagname = rootTagName; var p = rootTagName.indexOf(':'); if (p != -1) { prefix = rootTagName.substring(0, p); tagname = rootTagName.substring(p+1); } // If we have a namespace, we must have a namespace prefix // If we don't have a namespace, we discard any prefix if (namespaceURL) { if (!prefix) prefix = "a0"; // What Firefox uses } else prefix = ""; // Create the root element (with optional namespace) as a // string of text var text = "<" + (prefix?(prefix+":"):"") + tagname + (namespaceURL ?(" xmlns:" + prefix + '="' + namespaceURL +'"') :"") + "/>"; // And parse that text into the empty document doc.loadXML(text); } return doc; } };
file: readxml.js
function readXmlFile() { url = 'http://rorbuilder.info/pl/test123'; doc = XML.load(url); alert(doc.documentElement.firstChild.nextSibling.firstChild.nodeValue); }
file: readxml.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Read an XML file</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <script type="text/javascript" src="js/loadxml.js"/> <script type="text/javascript" src="js/readxml.js"/> </head> <body> <h1>ReadXML</h1> <p> If all goes well you should see an alert box display the message 'testing 123' </p> <p>Press the 'go' button to read the xml file '<a href="test123">test123</a>' from the web server. <input type="button" onclick="readXmlFile()" value="go"/> </p> </body> </html>
Note: To avoid the cross-site security error message 'permission denied', store all the files on the same web server.
To test the above code try out the demo to read the xml file [rorbuilder.info].