使用jQuery将远程(和变量)XML文件解析为数组

时间:2013-10-04 10:10:09

标签: javascript php jquery xml arrays

我是JavaScript和jQuery(昨天开始学习)的完整菜鸟,但我已经发现它非常容易使用,非常直观! :)

所以,我需要做的是解析一个XML文件(根据我发送的查询将由远程PHP文件吐出),并将其放入一个我以后可以用来绘制图表等的数组中。

这里的诀窍是XML文件将根据查询具有不同的结构和类别,因此我需要一种“通用”解析器。

我唯一可以控制的是所有基本项都将被称为“item”,但每个项目中的类别将根据查询而改变,用户将在运行时对其进行修改。

结构总是如下所示:

<results>
 <item>
  <variable1>value1</variable1>
  <variable2>value2</variable2>
  <variable3>value3</variable3>
  <variable4>value4</variable4>
  <variable5>value5</variable5>
 </item>
 <item>
  <variable1>value6</variable1>
  <variable2>value7</variable2>
  <variable3>value8</variable3>
  <variable4>value9</variable4>
  <variable5>value10</variable5>
 </item>
</results>

我希望有这样一个数组:

results[0].variable1 = value1
results[0].variable2 = value2
results[0].variable3 = value3
results[0].variable4 = value4
results[0].variable5 = value5

results[1].variable1 = value6
results[1].variable2 = value7
results[1].variable3 = value8
results[1].variable4 = value9
results[1].variable5 = value10

但正如我所说,我只能保证“项目”名称。在每种情况下,变量的名称都是可变的。

有什么建议吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

试试这个,

var arr={};// Object if you want an array then use=> var arr=[];
$('item').each(function(index,value){
    var data={};
    $(this).find('*').each(function(i,v){
      data[$(this).prop('tagName')]=$(this).text();
    });
    arr[index]=data;
})
console.log(arr);

Fiddle