loadXML in FF

Hi Experts,

I have a problem with the following code. The problem is that code works in IE and doesn't work in FF.
Please advice.

Thanks in advance

<HTML>
<HEAD>
<TITLE></TITLE>
<script>
function getXMLDocument()
      {
            var xDoc=null;
            if (document.implementation
                              && document.implementation.createDocument)
            {
                  xDoc=document.implementation.createDocument("","",null);
            }
            else if (typeof ActiveXObject != "undefined")
            {
                  var msXmlAx=null;
                  try
                  {
                              msXmlAx=new ActiveXObject("Msxml2.DOMDocument");
                  }
                  catch (e)
                  {
                        msXmlAx=new ActiveXObject("Msxml.DOMDocument");
                  }
                  xDoc=msXmlAx;
            }
            if (xDoc==null || typeof xDoc.load=="undefined")
            {
                  xDoc=null;
            }
            return xDoc;
      }

var txt = "<ruleValues><rule_value><value>v 1</value><name>value 1</name></rule_value><rule_value><value>v 2</value><name>value 2</name></rule_value></ruleValues>";
function test()

{
      xmldoc = getXMLDocument();
      //xmldoc.load("xml.xml");      
      xmldoc.loadXML(txt);
      ruleValues = xmldoc.getElementsByTagName("ruleValues");
      ruleValueNodes = ruleValues(0).childNodes;
      for (i = 0;  i < ruleValueNodes.length; i++)
      {
            valueNode = ruleValueNodes(i);
            id =  valueNode.childNodes(0).text;
            value =  valueNode.childNodes(1).text;
            alert("ID: " + id + " value: " + value);
      }      
}
</script>
</HEAD>
<BODY>
<input type="button" value="Test" onClick="test()">
</BODY>
</HTML>
LVL 8
RozanaZAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Suat OzgurConnect With a Mentor Web / Application DeveloperCommented:
Hi,

This is how I would solve the issue for Firefox:

function test(){
     xmldoc = getXMLDocument();
     if (window.ActiveXObject){
          xmldoc.loadXML(txt);
     }else if(document.implementation.createDocument){
          var vParser = new DOMParser();
          xmldoc = vParser.parseFromString(txt, "text/xml");
     }

     ruleValues = xmldoc.getElementsByTagName("ruleValues");
     ruleValueNodes = ruleValues[0].childNodes;

     for (i = 0;  i < ruleValueNodes.length; i++){
          id =  ruleValueNodes[i].childNodes[0].childNodes[0].nodeValue;
          value =  ruleValueNodes[i].childNodes[1].childNodes[0].nodeValue;
          alert("ID: " + id + " value: " + value);
     }    
}

Simply; ruleValueNode includes 2 tags, "value" and "name": these tags include a single element, a text node (text content - childNodes[0]). Then nodeValue returns the this node's value that we can get by using .text property in IE but FF. So we used nodeValue in the sample code.

I hope it helps.

Suat
0
 
Suat OzgurWeb / Application DeveloperCommented:
You can see following page for retrieving XML Data for Firefox and differences between IE and Firefox.
http://www.webreference.com/programming/prof_ajax/3.html

Suat
0
 
RozanaZAuthor Commented:
Just perfect!
Thanks a lot!
0
 
Suat OzgurWeb / Application DeveloperCommented:
You're welcome!

Thanks for the A grade!
Suat
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.