xml+javascript
Пытаюсь парсить xml-файл скриптом, вроде все нормально, ошибок нет, но вместо значений между тэгами почему то всегда возвращается null...
Пример xml
<?xml version="1.0" encoding="UTF-8"?>
<table>
<heading>
<column>
<title>Заголовок</title>
</column>
<column>
<title>Номер</title>
</column>
</heading>
<trow>
<tcell>a</tcell>
<tcell>227</tcell>
</trow>
<trow>
<tcell>b</tcell>
<tcell>456</tcell>
</trow>
<trow>
<tcell>c</tcell>
<tcell>347</tcell>
</trow>
<trow>
<tcell>d</tcell>
<tcell>4356</tcell>
</trow>
<trow>
<tcell>e</tcell>
<tcell>456</tcell>
</trow>
<trow>
<tcell>f</tcell>
<tcell>365</tcell>
</trow>
<trow>
<tcell>g</tcell>
<tcell>456</tcell>
</trow>
</table>
javascript:
function ReadRSS(rssFeed, BodyContent)
{
rssContent = document.getElementById(BodyContent);
try
{
if (document.all)
{
var errorHappendHere = "Check Browser and security settings";
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}
else
{
var errorHappendHere = "Apparently one cant read remote xml via firefox, please copy the file to your server";
xmlDoc = document.implementation.createDocument(" ","",null);
}
xmlDoc.async=false;
xmlDoc.load(rssFeed);
elem = xmlDoc.documentElement;
SetRSSTemplates();
}
catch(e)
{
rssContent.innerHTML = 'Error occured';
rssContent.innerHTML += 'Thrown Error:'+e.message+"<br/>Note: "+errorHappendHere;
}
}
function SetRSSTemplates()
{
if (rssContent)
{
var output = "<table><thead><tr>";
var heading = elem.childNodes[0];
var len = heading.childNodes.length;
for(var i=0; i<len; i++)
{
var node = heading.childNodes[i].childNodes[0].node Value;
output += '<th>'+node+'</th>'; // Вот тут node всегда равна null
}
output += '</tr></thead>';
len = len-1;
var inlen = elem.childNodes[1].childNodes.length;
output += '<tbody>';
for(var i=1; i<len; i++)
{
output += '<tr>';
for(var j=0; j<inlen; j++)
{
var currentNode = elem.childNodes[i];
if(currentNode.length > 0) var node = currentNode.childNodes[j].nodeValue;
output += '<td>'+node+'</td>'; // И тут тоже null
}
output += '</tr>';
}
output += '</tbody>';
buffer = output;
rssContent.innerHTML = buffer;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<table>
<heading>
<column>
<title>Заголовок</title>
</column>
<column>
<title>Номер</title>
</column>
</heading>
<trow>
<tcell>a</tcell>
<tcell>227</tcell>
</trow>
<trow>
<tcell>b</tcell>
<tcell>456</tcell>
</trow>
<trow>
<tcell>c</tcell>
<tcell>347</tcell>
</trow>
<trow>
<tcell>d</tcell>
<tcell>4356</tcell>
</trow>
<trow>
<tcell>e</tcell>
<tcell>456</tcell>
</trow>
<trow>
<tcell>f</tcell>
<tcell>365</tcell>
</trow>
<trow>
<tcell>g</tcell>
<tcell>456</tcell>
</trow>
</table>
javascript:
function ReadRSS(rssFeed, BodyContent)
{
rssContent = document.getElementById(BodyContent);
try
{
if (document.all)
{
var errorHappendHere = "Check Browser and security settings";
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}
else
{
var errorHappendHere = "Apparently one cant read remote xml via firefox, please copy the file to your server";
xmlDoc = document.implementation.createDocument("
}
xmlDoc.async=false;
xmlDoc.load(rssFeed);
elem = xmlDoc.documentElement;
SetRSSTemplates();
}
catch(e)
{
rssContent.innerHTML = 'Error occured';
rssContent.innerHTML += 'Thrown Error:'+e.message+"<br/>Note: "+errorHappendHere;
}
}
function SetRSSTemplates()
{
if (rssContent)
{
var output = "<table><thead><tr>";
var heading = elem.childNodes[0];
var len = heading.childNodes.length;
for(var i=0; i<len; i++)
{
var node = heading.childNodes[i].childNodes[0].node
output += '<th>'+node+'</th>'; // Вот тут node всегда равна null
}
output += '</tr></thead>';
len = len-1;
var inlen = elem.childNodes[1].childNodes.length;
output += '<tbody>';
for(var i=1; i<len; i++)
{
output += '<tr>';
for(var j=0; j<inlen; j++)
{
var currentNode = elem.childNodes[i];
if(currentNode.length > 0) var node = currentNode.childNodes[j].nodeValue;
output += '<td>'+node+'</td>'; // И тут тоже null
}
output += '</tr>';
}
output += '</tbody>';
buffer = output;
rssContent.innerHTML = buffer;
}
}
