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 に答える