| | |
Script for accessing child nodes does not work for Firefox...
Please support our RSS, Web Services and SOAP advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
•
•
Join Date: Oct 2007
Posts: 8
Reputation:
Solved Threads: 0
Hi everyone,
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:
<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)
{if (xmlDoc.documentElement.childNodes[j].nodeType == 1)
{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>
It seems that the line in green is not being recognized by Firefox. Are there any codes that are compatible both in IE and Firefox???
Need help, please...
Thanks a lot in advance...
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:
<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)
{if (xmlDoc.documentElement.childNodes[j].nodeType == 1)
{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>
It seems that the line in green is not being recognized by Firefox. Are there any codes that are compatible both in IE and Firefox???
Need help, please...
Thanks a lot in advance...
![]() |
Other Threads in the RSS, Web Services and SOAP Forum
- Previous Thread: View an xml file in ie
- Next Thread: Adding Attributes to all XML Nodes
| Thread Tools | Search this Thread |
.htaccess 301 accept access alltop api authentication binarysecuritytoken blog card collaboration credit data development ebay email evernote flash google government highrise htaccess intel internet legal live netbeans patent paypal php podcast proxy redirect rss rssfeeds searchmonkey server service soap software swappingxmlfromflash swappingxmlnodes url web webservices webservicesecurity wiki wikipedia xerces xml xslt y!os yahoo ydn





