0

以下のような一般的なxmlがあります

 <Results>
  <Columns>
    <Column>Center ID</Column>
    <Column>Center Name</Column>
   /Columns>
  <Result>
    <Data>32452368</Data>
    <Data>Center1</Data>
  </Result>
  <Result>
    <Data>32452368</Data>
    <Data> Center2</Data>
  </Result>

</Results>

このxmlからデータを読み取るためにjqueryを使用しようとしています。

 $(xml).find("Results/Result").each(function()
    {
    }

しかし、最初のデータが常にセンターIDであるように、それらを順番に読み取るには、何らかの方法を知る必要があります。助言がありますか...

ありがとう、

4

2 に答える 2

1

あなたは右側にいます。eachメソッドはjQueryオブジェクトを反復し、一致した要素ごとに関数を順番に実行しますが、findメソッドのセレクターの構文は正しくありません。これを試してください:

$(xml).find('Results > Result').each(function(){
   // do something here
})
于 2012-08-14T16:20:45.660 に答える
0

このようなものはどうですか:

var columns = [];

// Go through the first Result tag and record the order of the columns:
$(xml).find('Results > Result:first').each(function() {
    $(this).children('Data').each(function() {
        columns.push( $(this).text() );
    });
});

var results = [];
$(xml).find('Results > Result:not(:first)').each(function() {
    // Result will map column names to values:
    var result = {};
    $(this).children('Data').each(function(i) {
        result[ columns[i++] ] = $(this).text();
    });
    results.push(result);
});

// Now results is an array of objects:
// [
//   { 'Center ID': 32452368', 'Center Name': 'Center1' },
//   { 'Center ID': 32452368', 'Center Name': 'Center2' }
// ]

間違った方向に進んでしまった唯一のことは/、有効な CSS/jQuery セレクターではないセレクターでの使用でした。>親子関係を示すために使用されます。Results > Resultが鍵です。

于 2012-08-14T16:27:33.380 に答える