jQuery的帮助 - 解析XML到数组

问题描述:

我目前正在开发一个HTML游戏,用户拖动项目,并将其放入正确的类别。类别及其项目在XML文档中定义。jQuery的帮助 - 解析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]

数组2 = [中等-1,中度-2,中度-3]等。 ..

这将允许我根据类别数组检查被删除项目的属性是否正确。

如果您有任何其他想法可以做到这一点,请建议。

预先感谢您。

尝试,这样的事情:

$(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.. 
+0

非常感谢你@Sudhir。它完美的作品。 –

尝试这样的:

$("cat", xml).each(function() { 
    $("item", this).toArray(); 
}); 

$($.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中执行此操作)。