需要帮助使用javascript循环遍历xml文件

时间:2011-05-12 19:28:03

标签: javascript ajax

这是我第一次以任何方式使用ajax,所以请耐心等待。

在我的程序中,我有一个下拉框,可根据所选的状态动态提取邮政编码,县和城市。到目前为止,县的工作正常,但邮政编码和城市只显示我的xml表上的第一条记录。

xml看起来像这样:

<states>
   <counties>
     <county>
       <countyid>id#1</countyid>
       <countyname>nassau</countyname>
     </county>
   </counties>
   <zipcodes>
     <zip>10109</zip>
   </zipcodes>
   <cities>
     <city>New York</city>
   <cities>
</states>

现在,循环遍历县部分的javascript如下所示:

target1.options[0] = new Option("Select County", "null");
for (var i = 0; i < xmlCounties.length; i++) {
target1.options[target1.options.length] = new Option(xmlCounties[i].childNodes[1].firstChild.nodeValue, xmlCounties[i].childNodes[0].firstChild.nodeValue, false, (matched == xmlCounties[i].childNodes[0].firstChild.nodeValue));

}

这很好用,但对于城市和邮政编码,它们都不是,它们看起来都像这样,与上面的例子相同:

target2.options[0] = new Option("Select Zipcode", "null");
for (var i = 0; i < xmlZips.length; i++) {target2.options[target2.options.length] = new Option(xmlZips[i].childNodes[0].firstChild.nodeValue, xmlZips[i].childNodes[0].firstChild.nodeValue, false, (matched == xmlZips[i].childNodes[0].firstChild.nodeValue));
}

它们都从xml中提取数据,但只从第一条记录中提取数据。关于如何解决这个问题的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

县是2级深度..拉链和城市只有一层深。这就是原因。试试这个

target2.options[0] = new Option("Select Zipcode", "null");
for (var i = 0; i < xmlZips.length; i++) {target2.options[target2.options.length] = new Option(xmlZips[i].childNodes[0].nodeValue, xmlZips[i].childNodes[0].nodeValue, false, (matched == xmlZips[i].childNodes[0].nodeValue));
}