javascript - 在javascript问题中读取xml

标签 javascript xml ajax

大家好,

我读取 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);


                             }


                     }

最佳答案

您不必为它编制索引两次。只需将该行更改为:

item.options[item.options.length] = new Option(
    tests.getElementsByTagName("name")[0].childNodes[0].nodeValue,
    tests.getElementsByTagName("code")[0].childNodes[0].nodeValue
);

因此,为清楚起见,您的上述代码块应如下所示:

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")[0].childNodes[0].nodeValue,
        tests.getElementsByTagName("code")[0].childNodes[0].nodeValue
    );
  }
}

关于javascript - 在javascript问题中读取xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838760/

相关文章:

javascript - 无法在 jQuery-UI 选项卡中显示 Google DFP 广告

javascript - Rails form_with ajax 回调不起作用

javascript - 来自 <FormattedMessage> 的 React.Intl 子字符串

javascript - 传播和传递对象作为 Prop 不起作用

javascript - HTML5 视频上方的 H1 文本

c# - 如何制作 XML 节点的副本及其所有子节点和值但名称不同 C# .NET

javascript - 并发 jquery jsonp 响应被发送到错误的成功处理程序

javascript - 从 DIV 元素中获取值

java - 无法通过 servlet.xml 设置 session 工厂

c# - 无法从文本文件加载带有 xml 实体的流文档