【问题标题】:React Native RSS Feed reader issueReact Native RSS Feed阅读器问题
【发布时间】:2016-08-11 03:33:09
【问题描述】:

我正在使用 React Native 并尝试读取然后解析 RSS 提要。我正在关注本教程:

https://getsiphon.com/docs/build-a-youtube-browser/

我正在使用一些代码,但尝试使用不同的 RSS 提要。例如:

https://fivejs.codeschool.com/feed.rss

这是我遇到问题的具体代码:

getNews() {
  var url = "https://fivejs.codeschool.com/feed.rss"
  fetch(url)
  .then((response) => response.text())
  .then((responseText) => {
    const doc = new DOMParser().parseFromString(responseText, "text/xml");
    var items = doc.getElementsByTagName('item');
    var objs = []
    for (var i = 0; i < items.length; i++) {
      objs.push({
        title: items[i].childNodes[0]
      })
    }
    console.log("yay! made it here")
    console.log("objs length: ", objs.length)
    console.log("objs: ", objs[0])
  })
  .catch((error) => {
    console.log('Error fetching the feed: ', error);
  });
}

一切都很好,直到我在控制台中注销 objs 数组。换句话说,我看到了耶!在这里做了消息,我还看到了 objs.length 消息(25)。一旦进入下一部分,我就看不到数组中的第一项。

作为说明,我正在构建我的代码并使用 Xcode 在 iOS 模拟器中运行它。我不确定调试输出控制台是否与它有关,但我无法想象它会因为它确实输出其他消息。我什至尝试在 for 循环中控制台记录 items[i].childNodes[0] 并没有得到任何结果。

【问题讨论】:

    标签: rss react-native


    【解决方案1】:

    不确定这是否会对您有所帮助,但按照我自己的项目的相同教程,我必须检查两个要点以使一切正常:

    • 检查您的 XML 上的标签,有时这会弄乱您的解析。

    • 在循环内,您可以选择另一个属性。例如,在我尝试解析博客 rss 的情况下,我得到了“项目”(如 12 个项目),在其中我得到了“标题”,所以我这样做了:

      var item = doc.getElementsByTagName('item');
      
      for(i=0; i < item.length; i++){
      
      var title = item[i].getElementsByTagName('title');
      console.log(title[0].textContent);
      
      }
      

    有了这个,你可以创建一个元素(也许是一个字典?),然后把它推到你的数组中。 我希望这对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 2015-02-24
      相关资源
      最近更新 更多