hothousegraphix
01-01-2007, 07:29 PM
I'm have trouble writing a proper "for loop" to parse my XML doc and write the info grabbed to my html doc.
If I simply spell out exactally what I want the info writes as intended; e.g.
document.getElementById("date_1").innerHTML=xmlDoc.getElementsByTagName("date")[0].childNodes[0].nodeValue;
document.getElementById("copy_1").innerHTML=xmlDoc.getElementsByTagName("copy")[0].childNodes[0].nodeValue;
document.getElementById("date_2").innerHTML=xmlDoc.getElementsByTagName("date")[1].childNodes[0].nodeValue;
document.getElementById("copy_2").innerHTML=xmlDoc.getElementsByTagName("copy")[1].childNodes[0].nodeValue;
But, when I try to consolitdate the above into a loop nothing writes. My XML doc is streight forward; e.g. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
- <news>
- <entry>
<date>Entry for 11/8/2006</date>
<copy>Some Text Here</copy>
</entry>
- <entry>
<date>Entry for 11/1/2006</date>
<copy>Some Text Here</copy>
</entry>
- <entry>
<date>Entry for 11/1/2006</date>
<copy>Some Text Here</copy>
</entry>
</news>
And my xhtml is as follows; e.g.
<body onload="loadXML()">
<p><span id="date_1"></span><br />
<span id="copy_1"></span>
</p>
<p><span id="date_2"></span><br />
<span id="copy_2"></span>
</p>
</body>
I've tried a number of things but have had no success. Here is what I'm currently working with:
function getMessage()
{
for ( i=0; i < xmlDoc.length; i++ )
{
var entryDate[i] = xmlDoc.getElementsByTagName("date")[i].childNodes[0].nodeValue;
var entryCopy[i] = xmlDoc.getElementsByTagName("copy")[i].childNodes[0].nodeValue;
document.getElementById("date_" + (1 + i)).innerHTML = entryDate[i];
document.getElementById("copy_" + (1 + i)).innerHTML = entryCopy[i];
}
}
The above is not working. Would anyone have some advice on how to correct?
Thanks!
If I simply spell out exactally what I want the info writes as intended; e.g.
document.getElementById("date_1").innerHTML=xmlDoc.getElementsByTagName("date")[0].childNodes[0].nodeValue;
document.getElementById("copy_1").innerHTML=xmlDoc.getElementsByTagName("copy")[0].childNodes[0].nodeValue;
document.getElementById("date_2").innerHTML=xmlDoc.getElementsByTagName("date")[1].childNodes[0].nodeValue;
document.getElementById("copy_2").innerHTML=xmlDoc.getElementsByTagName("copy")[1].childNodes[0].nodeValue;
But, when I try to consolitdate the above into a loop nothing writes. My XML doc is streight forward; e.g. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
- <news>
- <entry>
<date>Entry for 11/8/2006</date>
<copy>Some Text Here</copy>
</entry>
- <entry>
<date>Entry for 11/1/2006</date>
<copy>Some Text Here</copy>
</entry>
- <entry>
<date>Entry for 11/1/2006</date>
<copy>Some Text Here</copy>
</entry>
</news>
And my xhtml is as follows; e.g.
<body onload="loadXML()">
<p><span id="date_1"></span><br />
<span id="copy_1"></span>
</p>
<p><span id="date_2"></span><br />
<span id="copy_2"></span>
</p>
</body>
I've tried a number of things but have had no success. Here is what I'm currently working with:
function getMessage()
{
for ( i=0; i < xmlDoc.length; i++ )
{
var entryDate[i] = xmlDoc.getElementsByTagName("date")[i].childNodes[0].nodeValue;
var entryCopy[i] = xmlDoc.getElementsByTagName("copy")[i].childNodes[0].nodeValue;
document.getElementById("date_" + (1 + i)).innerHTML = entryDate[i];
document.getElementById("copy_" + (1 + i)).innerHTML = entryCopy[i];
}
}
The above is not working. Would anyone have some advice on how to correct?
Thanks!