0

我是 JavaScript 和 jQuery 的完全新手(昨天开始学习),但我已经发现它非常易于使用,非常直观!:)

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

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

我唯一能控制的是所有基础项目都将被称为“项目”,但每个项目内的类别会根据查询而改变,这将由用户在运行时进行修改。

结构将始终如下所示:

<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

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

有什么建议么?

提前致谢!

4

1 回答 1

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);

小提琴

于 2013-10-04T10:15:39.143 回答