我有以下代码,它将输出“weather”元素的子元素。
x=xmlDoc.getElementsByTagName("weather")[0].childNodes;
for (i=0;i<x.length;i++) {
var parent = x[i].nodeName;
document.write("<b>"+parent+"</b><br />");
}
这将获得以下孩子:
forecast_information,current_conditions,forecast_conditions, forecast_conditions,forecast_conditions和forecast_conditions。
现在我想要检索这些元素的所有子元素。可能在循环内部有一个循环,这就是我尝试以下内容的原因:
for (i=0;i<x.length;i++) {
var parent = x[i].nodeName;
document.write("<b>"+parent+"</b><br />");
y=xmlDoc.getElementsByTagName(parent)[i].childNodes;
for (h=0;h<y.length;h++) {
var child = y[i].nodeName;
document.write(child+"<br />");
}
}
但这不起作用..它会得到输出:
forecast_information
城市(7次)
current_conditions
多数民众赞成......有什么帮助吗?
提前致谢!
答案 0 :(得分:0)
不要再调用getElementsByTagName。只需在循环中的每个元素上使用childNodes来获取孩子的孩子:
var x = xmlDoc.getElementsByTagName("weather")[0].childNodes;
var xlen = x.length;
var i, j, y, ylen;
for (i = 0; i < xlen; i++) {
document.write("<b>" + x[i].nodeName + "</b><br />");
y = x[i].childNodes;
ylen = y.length;
for(j = 0; j < ylen; j++) {
document.write(y[j].nodeName + "<br />");
}
}