我只是尝试在 JS 中使用 HttpXMLRequest 对象,我有一个基本循环,它从 XML 文件加载名称和年龄并将其放入表中。如果每个同级具有相同的值,则它可以正常加载,但是如果同级中缺少一个元素,它会停止而不是跳过它。这是一些代码。
HTML -
(The rest of the XML parser and DTD, html, body etc is up here)
<script>
var x=xmlDoc.getElementsByTagName("person");
document.write("<table border='1'>");
for (i=0;i<x.length;i++)
{
var name = x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
var age = x[i].getElementsByTagName("age")[0].childNodes[0].nodeValue;
document.write("<tr>");
document.write("<td>"+name+"</td>");
document.write("<td>"+age+"</td>");
document.write("</tr>");
}
document.write("</table>");
</script>
XML -
(The DTD and stuff it up here)
<people>
<person>
<name>Jim</name>
<age>20</age>
</person>
<person>
<name>Bob</name>
</person>
<person>
<name>Tom</name>
<age>20</age>
</person>
<person>
<name>James</name>
<age>20</age>
</person>
<person>
<name>Richie</name>
<age>20</age>
</person>
</people>
从那个例子来看,一旦到达 bob,HTML 将在写入后停止,我认为每个名字和年龄都需要一个 try/catch 或 if,但我似乎无法放置它以便它工作。有人有什么想法吗?
我试图搜索,但我不知道这个问题叫什么,描述它并没有提出任何问题。
简单地添加“<age />
或<age></age>
”不是一种选择,最终我将使用大量的 xml 文件。除非我需要编写一些在它不存在时会自动添加它的东西,否则我想这是可以接受的。
干杯Hombries。