2013-10-01 75 views
0

我是js的初學者。我從服務器拉一個XML(沒有可用的JSON),我想在網頁上顯示它。我得到了請求工作,我也設法訪問xml樹中的數據。兩者都使用jquery。他們是大會的數據,國會議員的數據。我想製作一堆衆議員對象,並用XML中的數據填充它們。他們去像:javascript/jquery中的最佳方法從xml數據填充oblects

在XML

<congressman> 
    <name> jhon </name> 
    . 
    . a lot of data 
    .<id>1234</id> 
</congressman> 

我可以作出這樣一個對象:

function Congressman(XML.node){ 
    name: this.name, 
    . 
    . 
    . 
    id: this.id 
} 

,並通過該節點作爲參數構造新Congressmans? 或者我需要循環每個國會議員的每個數據返回? 喜歡:

var name = $(root).find("congressman").find("name").text(); 
    var id = $(root).find("congressman").find("id").text(); 

and assign it to a Congressman obj? 

回答

0

可以使用each [1]中的jQuery迭代選擇的元素。

例如

var congressmanArray = []; // for stored congressman data 

$(root).find('congressman').each(function(){ 

    // collected data 
    var cman = {}; 
    cman.id = $(this).find('id').text();  
    cman.name = $(this).find('name').text(); 
    // .... 
    congressmanArray.push(cman); 

}); 

最終你會得到國會議員的數據作爲JSON。

因此,如果你的數據只有一個級別的子只是......

var congressmanArray = []; // for stored congressman data 

$(root).find('congressman').each(function(){ 

    // collected data 
    var cman = {}; 
    $(this).find('>*').each(function(){ 
     var tagName = $(this).prop('tagName'); 
     cman[tagName] = $(this).text(); 
    }); 
    congressmanArray.push(cman); 

}); 

希望這有助於!

[1] http://api.jquery.com/each/

+0

感謝,我會考慮今晚... –

+0

感謝!很有幫助 –

相關問題