You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript:从XML文件导入数据切换为JS对象数组导入的实现咨询

实现方案

完全可以按你期望的格式改写,实现逻辑非常简单,以下是具体说明和可直接使用的代码:

1. 直接硬编码JS对象数组(无需读取XML)

如果你的数据是固定不需要动态更新的,可以直接定义数组,完全符合你给出的格式:

// 如果要兼容你原逻辑从下标1开始读取的习惯,可在数组第一位留空占位
var table = [
  // 占位空元素,对应原逻辑i从1开始计数的写法
  {"name":"cafe 1", "address":"1 cafe st"},
  {"name":"cafe 2", "address":"2 cafe st"},
]

2. 遍历调用注意事项

你写的调用语法本身是合法的,只需要修正一处边界问题即可正常运行:

var m; 
// 原写法的 table.length-1 会漏掉最后一个元素,改为 table.length 即可
// 如果数组第一位留空,从下标1开始遍历完全没问题
for (m = 1; m < table.length; m++) {
  if (table[m].name == "cafe 1") {
    // 此处写你的业务逻辑
  }
}

如果你想按JS常规习惯从下标0开始遍历,去掉数组第一位的占位空元素,把循环初始值改为m=0即可。

3. 仍需读取XML生成目标格式数组的写法

如果后续还是需要从XML文件读取数据、自动生成你要的JS数组格式,可以用如下代码替换原AJAX success回调逻辑:

$.ajax({
  type: "GET",
  url: "x.xml",
  dataType: "xml",
  success: function(xml) {    
    var table = []
    // 如果要兼容从下标1开始的逻辑,先加一个空占位元素
    // table.push({})
    $(xml).find('location').each(function(){
      var name = $(this).find('name').text();
      var address = $(this).find('address').text();
      table.push({name:name, address:address});
    });
    // 拿到table数组后就可以按你想要的语法遍历调用
  }
});

内容的提问来源于stack exchange,提问作者User301276

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:15:03