打赌这很简单,但我已经花了几个小时才能让它发挥作用。
我正在阅读一个带有javascript的XML文件,但是我无法读取它的内容,只有当我在数组中更改索引(手动)时才会读取第二行。
这是我用
写出这一行的行 document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
正如我所说,当我将(“名称”)[0]更改为(“名称”)[1]时,它会读取第二行。 有没有办法可以创建一个循环?使用.length?
这是一些代码。
document.write("<table border='1'>");
var x =xmlDoc.getElementsByTagName("products");
for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</td></tr>");
}
document.write("</table>");
和XML文件
<productlist>
<products>
<title>Kök</title>
<product><id>23</id><name>Bestick</name><price>45</price></product>
<product><id>47</id><name>Tallrikar</name><price>99</price></product>
<product><id>54</id><name>Glas</name><price>64</price></product>
<product><id>68</id><name>Koppar</name><price>125</price></product>
</products>
<products>
<title>Sängkläder</title>
<product><id>12</id><name>Lakan</name><price>89</price></product>
<product><id>43</id><name>Kudde</name><price>148</price></product>
<product><id>48</id><name>Täcke</name><price>345</price></product>
</products>
</productlist>
感谢。
答案 0 :(得分:1)
你已经有一个循环,显然你需要另一个循环:
document.write("<table border='1'>");
var x = xmlDoc.getElementsByTagName("products");
for (var i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
document.write("</td><td>");
// Get all names on current products node, and loop
var names = x[i].getElementsByTagName("name");
for(var j=0; j<names.length; j++) {
document.write(names[j].childNodes[0].nodeValue);
}
document.write("</td><td>");
document.write("</td></tr>");
}
document.write("</table>");