我在循环通过 XML 结构时遇到问题。我的 XML 结构如下所示:
<main>
<representation>
<representation>A</representation>
<class>B</class>
<notes/>
<room>C</room>
</representation>
<representation>
<representation>D</representation>
<class>E</class>
<notes>F</notes>
<room>G</room>
</representation>
</main>
. . .
编辑:
我想要的是遍历每个主节点表示并将信息传递到表中。问题是我得到了具有这种结构的 XML 文件,但我无法影响它。那么我怎样才能只遍历每个主节点表示并跳过内部节点(也称为representation
)?
var columnContent1 = xmlDoc.getElementsByTagName("representation");
var tableContent = "";
for (i = 0 ; i<columnContent1.length; i++)
{
if (i % 2 == 1) {
tableContent += "<tr>";
tableContent += "<td>" + columnContent1[i].childNodes[0].childNodes[0].nodeValue + "</td>";
tableContent += "<td>" + columnContent1[i].childNodes[1].childNodes[0].nodeValue + "</td>";
tableContent += "<td>" + columnContent1[i].childNodes[2].childNodes[0].nodeValue + "</td>";
tableContent += "<td>" + columnContent1[i].childNodes[3].childNodes[0].nodeValue + "</td>";
tableContent += "</tr>";
}
};
tableBodyToday.innerHTML = tableContent;
在 Chrome 中工作正常,但并不完美。在 Firefox 中我得到错误
TypeError: columnContent1[i].childNodes[0].childNodes[0] is undefined
我怎样才能得到这样的信息?
<tr>
<td>A</td><td>B</td><td></td><td>C</td>
</tr>
<tr>
<td>D</td><td>E</td><td>F</td><td>G</td>
</tr>
如果节点是表数据为空。我认为解决方案很简单,但我没有得到正确的解决方案。
if (i % 2 == 1)
每隔一秒跳过一次 innernode representation
。有更好的解决方案吗?