0

我是js的初学者。我正在从服务器中提取一个 xml(没有可用的 json),并且我想在网页上显示它。我得到了请求,我也设法访问了 xml 树中的数据。两者都使用jquery。它们是来自国会的数据,国会议员的数据。我想做一堆Congressman 对象并用来自xml 的数据填充它们。他们像:

在 xml 中:

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

我可以制作一个像这样的对象:

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

并将节点作为构建新国会议员的参数传递?或者我需要在每个返回的国会议员中单独循环遍历每个数据?喜欢:

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

 and assign it to a Congressman obj? 
4

1 回答 1

0

您可以each在 jQuery 中使用 [1] 来迭代选定的元素。

例如

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/

于 2013-10-01T05:01:00.897 回答