XML Dom Object - IE, Firefox Supported

See the table below for the differences.

IE Supported Code

Firefox Supported Code
Creating XML DOM object Creating XML DOM object
xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc  = document.implementation.createDocument("","doc",null);
Make sure before loading the XML file you use the following lines of code It is the same for Firefox
xmlDoc.async = false;xmlDoc.preserveWhiteSpace=true; xmlDoc.async = false;xmlDoc.preserveWhiteSpace=true;
Loading an XML file Loading an XML file
xmlDoc .load("XML Path"); xmlDoc.onload=function (){};xmlDoc .load("XML Path");
  Here Firefox does not support loading of XML directly. So we should use a dummy function and then load XML.
Selecting Single Node in an XML with conditions Selecting Single Node in an XML
xmlNode=xmlDoc.selectSingleNode("//Path[@Attribute='condition']/remaining path"); selectSingleNode is not supported in Firefox. We can use XML Path to do our job as given below.
  function SelectSingleNode(xmlDoc, elementPath){   if (document.implementation && document.implementation.createDocument)      {         var nodes=document.evaluate(elementPath, xmlDoc, null, XPathResult.ANY_TYPE, null);var results=nodes.iterateNext();return results;       }    }
  To the above function we need to pass XML and the Element path like "//Path[@Attribute='condition']/remaining path" and access it as below
  xmlNode=SelectSingleNode(xmlDoc ,"//Path[@Attribute='condition']/remaining path");
For getting value of particular Attribute For getting value of particular Attribute
xmlNode.getAttribute("Attribute Name");     Here we can use the code given below
  xmlNode.attributes["Attribute Name"].value;          
To access the Text of the Single Node selected To access the Text of the Single Node selected
xmlNode.text; xmlNode.childNodes[0].nodeValue;
Selecting Nodes list based on condition Selecting Nodes list based on condition
xmlNodes= xmlDoc.selectNodes(“Node name Path [@attribute=’condition’]”) For ex: var xmlNodes = xmlDoc.selectNodes("//xNode[@xid='test']"); xmlNodes=xmlDoc.getElementsByTagName[“Node name Path”];For ex: var xmlNodes = xmlDoc.getElementsByTagName[“xNode”];
Iterating through the Nodes List and selecting value of a particular Attribute Iterating through the Nodes List and selecting value of a particular Attribute
for(var n=0;  n< xmlNodes.length; n++){var xid= xmlNodes (n).getAttribute("xid");} xmlNodes contains only the Nodes which has the Attribute xid and which has value ‘test’. If the Attribute value = ‘test’, then we are iterating through that Nodes only and retrieving the value of xid. Here xmlNodes  contains all the list of Nodes which are having the Node Name “xNode”. for(var n=0;  n< xmlNodes.length; n++){  // For getting all the Attributes of the Node selected var getXmlAttributes = xmlDoc.getElementsByTagName("Node name ")[n].attributes; // For selecting Attribute value based on condition, we should first get the Attributes List which contains the Attribute we need as below. var selectXmlAttribute = getXmlAttributes.getNamedItem("xid").value; // For retrieving the value of the Attribute based on Condition. if (selectXmlAttribute =="test") {   var xid= getXmlAttributes.getNamedItem("xid").value;}  
IE supports both () and [] braces while using document object Firefox supports only [] braces while using document object.
Ex: document.forms(0); or document.forms[0]; Ex: or document.forms[0];
Use document.getElementById[“”] instead of document.allBoth are supported in IE  document.all is IE specific  
In script tag never forget to mention type=”text/javascript”, as now a days all browsers implicitly know and support Java Script For ex: <script language =”javascript” type = ”text/javascript”></script>  
Don’t close the script tag like <script language =”javascript” type = ”text/javascript”/> as some browsers like IE loads the first script, and then continues to look for a closing </script> tag. Use:<script language =”javascript” type = ”text/javascript”></script> 

I followed the above standards of Browser and solved it..

2009. 1. 21. 16:02