I have this code in javascript where the XML file is loaded and displayed to an html using XSLT. It works fine in IE but not in Firefox. My problem is in the looping to the childNodes. It seems that Firefox does not recognize this line of code >> xmlDoc.getElementsByTagName("urlValue")[ctr].childNodes[0].nodeValue
I'm not sure if this is the line that is not working, or the lines before it. I'm looping to the childNodes to compare to my generated code value and retrieve its equivalent text value so that the one displayed to the HTML is the text value by using the XSLT.
Here is the javascript code:
Expand|Select|Wrap|Line Numbers
- <script language="javascript">
- Load_XML("/SearchCenter/Documents/FOXindustries.xml");
- decodeValue("Findustry_");
- function Load_XML(XMLfilePath)
- { xmlDoc = ''
- if (window.ActiveXObject)
- { //IE
- xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
- xmlDoc.async=false;
- xmlDoc.load(XMLfilePath);
- alert("loadIE");
- return xmlDoc;
- }
- else if (document.implementation && document.implementation.createDocument)
- { //Firefox
- xmlDoc=document.implementation.createDocument("","",null);
- xmlDoc.load(XMLfilePath);
- alert("loadFF");
- return xmlDoc;
- }
- else
- {
- return '';
- }
- }
- function decodeValue(Prop)
- {
- var temp=''
- for (k=1; k<=20; k++)
- {
- var temp=''
- var separator = ''
- if (document.getElementById(Prop_field.concat(k)) == null)
- { break;}
- codeValue = document.getElementById(Prop_field.concat(k)).innerHTML;
- multiCodeValue= codeValue.split(";");
- for (j=0;j<multiCodeValue.length;j++)
- {
- SingleCodeValue = multiCodeValue[j].split(" ");
- for (x=0;x<SingleCodeValue.length;x++)
- { ctr = 0; while (ctr < xmlDoc.documentElement.childNodes.length)
- {matchValue = xmlDoc.getElementsByTagName("urlValue")[ctr].childNodes[0].nodeValue;
- }
- if (SingleCodeValue[x] == matchValue)
- { if (temp!='' || separator != '' )
- {
- temp = temp + separator + xmlDoc.getElementsByTagName("textValue")[ctr].childNodes[0].nodeValue;
- }
- else
- {
- temp = xmlDoc.getElementsByTagName("textValue")[ctr].childNodes[0].nodeValue;
- separator = ", "
- }
- }
- ctr++;
- }
- }
- }
- if (temp != '')
- {
- temp = temp.replace(/;/g, " ; ")
- document.getElementById(Prop_field.concat(k)).innerHTML = temp
- }
- }
- }
- </script>
This code works fine in IE but not in Firefox...
What code will i use in order for this to work both in IE and Firefox.???