【发布时间】:2010-05-15 03:04:41
【问题描述】:
大家好,
我的代码读取 xml 有问题。我使用 ajax 读取 xml 数据并将其填充到组合框中。我的问题是它只读取第一个数据。这是我的代码
我的xml是这样的
<info>
<area>
<code>1</code>
<name>area1</name>
</area>
<area>
<code>2</code>
<name>area2</name>
</area>
</info>
还有我的 javascript
if(http.readyState == 4 && http.status == 200) {
//get select elements
var item = document.ProblemMaintenanceForm.elements["probArea"];
//empty combobox
item.options.length = 0;
//read xml data from action file
var test = http.responseXML.getElementsByTagName("area");
alert(test.length);
for ( var i=0; i < test.length; i++ ){
var tests = test[i];
item.options[item.options.length] = new Option(tests.getElementsByTagName("name")[i].childNodes[0].nodeValue,tests.getElementsByTagName("code")[i].childNodes[0].nodeValue);
}
}
【问题讨论】:
-
您是否在调试器中单步执行代码以验证您返回的 XML 是否符合您的预期?走过它,看看会发生什么。您可以使用 IE8 的开发人员工具或 Firefox 的 Firebug 插件来逐行跟踪执行。检查数组的值并确保为每个属性使用正确的索引。乍一看,似乎 childNodes[i] 不正确。
-
我已经逐步完成了代码,并且 xml 与我所期望的相同
-
如果可以的话,请使用 JSON 而不是 XML,这是一种更好的格式。
标签: javascript xml ajax