这是使用jQuery将XML解析为JavaScript对象的最快方法吗?

我有一个像这样的XML文件:

  A1 B1 C1 D1   A2 B2 C2 D2   A3 B3 C3 D3   

它有500个box元素,我需要解析为JavaScript对象。 我使用这个代码工作正常,但我是一个新手,也许我错过了一些东西,如果有更好/更快的方法,我想得到建议:

 var app = { //... box: [], init: function (file) { var that = this; $.ajax({ type: "GET", url: file, dataType: "xml", success: function (xml) { $("box", xml).each(function (i) { var e = $(this); that.box[i] = new Box(i, { var1: e.children("var1").text(), var2: e.children("var2").text(), var3: e.children("var3").text(), var4: e.children("var4").text() }); }); } }); }, //... }; 

提前致谢。

尽可能使用JSON 。 这样浏览器将为您进行解析,您不必进行任何后处理。

来自服务器的JSON

 {"content": {"box": [ {"var1": "A1", "var2": "B1", "var3": "C1", "var4": "D1"}, {"var1": "A2", "var2": "B2", "var3": "C2", "var4": "D2"}, {"var1": "A3", "var2": "B3", "var3": "C3", "var4": "D3"}]}} 

客户端JavaScript

 var app = { //... box: [], init: function (file) { var that = this; $.ajax({ type: "GET", url: file, dataType: "json", success: function(result) { that.box = $.map(result.content.box, function(box, i) { return new Box(i, box); }); } }); }, //... }; 

我有一个XML源我不得不使用..我在客户端将其转换为JSON然后加载它..更容易..

 Tracker.loadCasesFromServer = function () { $.ajax({ type: 'GET', url: '/WAITING.CASES.XML', dataType: 'xml', success: function (data) { Tracker.cases = jQuery.parseJSON(xml2json(data, "")); Tracker.loadCasesToMap(); }, data: {}, async: true }); 

};

使用了XML2JSON转换器,可以在这里找到: http : //www.thomasfrank.se/xml_to_json.html

邓肯

您可以使用浏览器本机XML支持,我想这会很快。 然而,这在浏览器中是不同的(例如,Firefox: DOMParser ,IE: XMLDOM ..)。

所以,不要只是继续并手动处理所有浏览器,你可以使用这样的东西https://sites.google.com/a/van-steenbeek.net/archive/explorer_domparser_parsefromstring