jQuery的帮助 - 解析XML到数组(jQuery help - Parse XML into

2019-07-31 12:02发布

我目前正在开发一个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]

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

这将让我检查,如果基于类别阵列上掉落物品的属性是正确的。

如果你有一个如何可以这样做任何其他的想法,请不要建议。

先感谢您。

Answer 1:

尝试,是这样的:

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


Answer 2:

尝试这样的:

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


Answer 3:

$($.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)。



文章来源: jQuery help - Parse XML into array