【问题标题】:How to loop and get data from xml converted to json?如何循环并从转换为json的xml中获取数据?
【发布时间】:2015-05-19 18:23:24
【问题描述】:

我已将 xml 转换为 json 并希望使用循环过程获取一些数据。实际上,我想获取标题,描述和链接方面的数据,但是我在这里堆积并给出错误。

$(function(){
      url = 'http://www.straitstimes.com/news/sport/rss.xml';
      $.ajax({
      type: "GET",
      url: 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
      dataType: 'json',
      error: function(){
          alert('Unable to load feed, Incorrect path or invalid feed');
      },
      success: function(xml){

        html='';
              console.log(xml.responseData.feed.entries); 

              for (var i = 0; i < xml.responseData.feed.entries .length; i++){
               html+=  xml.responseData.feed.entries[i].title+'<br/>'+
               html+=  xml.responseData.feed.entries[i].description+'<br/>'+
               html+=  xml.responseData.feed.entries[i].link+'<br/>';
           }
           $('#feedContainer').html(html);

        }
    });
});

【问题讨论】:

  • 你也可以发布错误吗?
  • 我收到“ReferenceError: invalid assignment left-hand side”
  • 对于初学者来说,for 循环中的条目和“.length”之间有一个空格。
  • 哦,即使删除空间仍然是同样的错误。

标签: jquery json xml


【解决方案1】:

当您使用 += 构造函数时,您将添加到已定义的变量中。因此,您不需要在行尾使用 +,您需要结束语句。所以

 html+=  xml.responseData.feed.entries[i].title+'<br/>'+
 html+=  xml.responseData.feed.entries[i].description+'<br/>'+
 html+=  xml.responseData.feed.entries[i].link+'<br/>';

应该是

html+=  xml.responseData.feed.entries[i].title+'<br/>';
html+=  xml.responseData.feed.entries[i].description+'<br/>;
html+=  xml.responseData.feed.entries[i].link+'<br/>';

 html =  xml.responseData.feed.entries[i].title+'<br/>'+
 xml.responseData.feed.entries[i].description+'<br/>'+
 xml.responseData.feed.entries[i].link+'<br/>';

【讨论】:

  • 呵呵,好吧,我没注意到他们:)
【解决方案2】:

这是正确的代码JSFiddle

您在 html += 行上的语法存在一些问题。 (+ 不正确)。

我为自己分离了 url 声明(只是为了确保没有问题)。

 $(function(){
   var url1 = 'http://www.straitstimes.com/news/sport/rss.xml';
   var url2 = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url1);
  $.ajax({
  type: "GET",
  url:  url2,
  dataType: 'json',
  error: function(){
      alert('Unable to load feed, Incorrect path or invalid feed');
  },
  success: function(xml){

    html='';
          console.log(xml.responseData.feed.entries); 

          for (var i = 0; i < xml.responseData.feed.entries.length; i++) {
              console.log(xml.responseData.feed.entries[i].title);
          html +=  xml.responseData.feed.entries[i].title+'<br/>';
          html +=  xml.responseData.feed.entries[i].description+'<br/>';
          html +=  xml.responseData.feed.entries[i].link+'<br/>';
       }
       $('#feedContainer').html(html);

    }
  });
});

【讨论】:

  • 哦,谢谢oliromahony,我没有注意到,它工作,但描述是未定义的输出,可以帮助我解决这个问题吗?
  • np, jsfiddle.net/6dvcypmx/3 您正在查看错误的属性名称 - 它应该是那个小提琴中的内容
  • 哦,好的,现在工作正常,感谢您的帮助:D
猜你喜欢
  • 2017-09-20
  • 2017-03-10
  • 2021-09-22
  • 2020-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
相关资源
最近更新 更多