我目前正在开发一款HTML游戏,用户可以将项目拖放到正确的类别中。类别及其项目在XML文档中定义。
我的XML格式:
<config>
<game>
<title>Dementia</title>
<cat>
<catTitle>Mild</catTitle>
<item>mild-1</item>
<item>mild-2</item>
<item>mild-3</item>
</cat>
<cat>
<catTitle>Moderate</catTitle>
<item>Moderate-1</item>
<item>Moderate-2</item>
<item>Moderate-3</item>
</cat>
<cat>
<catTitle>Severe</catTitle>
<item>Severe-1</item>
<item>Severe-2</item>
</cat>
</game>
我想使用jQuery将这个XML文件解析为基于其类别的单独数组。
例如:
array1 = [轻度-1,轻度-2,轻度-3]
array2 = [Moderate-1,Moderate-2,Moderate-3]等......
这将允许我根据类别数组检查被删除项目的属性是否正确。
如果您对如何做到这一点有任何其他想法,请建议。
提前谢谢。
答案 0 :(得分:5)
尝试,像这样:
$(document).ready(function() {
var arr = [];
$(xml).find("cat").each(function(idx, v) {
arr[idx] = [];
$(v).find("item").each(function( i , vi) {
arr[idx].push( $(vi).text() );
});
});
console.log( arr );
});
将返回响应,如:
[
["mild-1", "mild-2", "mild-3"]
,
["Moderate-1", "Moderate-2", "Moderate-3"]
,
["Severe-1", "Severe-2"]
]
所以你可以访问单个数组,
console.log( arr[0] ); //for first, and so on..
答案 1 :(得分:3)
尝试这样:
$("cat", xml).each(function () {
$("item", this).toArray();
});
答案 2 :(得分:1)
$($.parseXML(xml)).find("cat").each(function (idx, v) {
arr[idx] = [];
$(v).find("item").each(function (i, vi) {
arr[idx].push($(vi).text()
);
});
因为$(xml)
在IE中不起作用(请参阅此jQuery.find()
不会在IE中返回数据,但会在Firefox和Chrome中返回数据)。