这是使用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