【问题标题】:How to parse an RSS feed in React Native?如何在 React Native 中解析 RSS 提要?
【发布时间】:2019-11-25 13:05:38
【问题描述】:

Youtube 上没有任何关于如何在 RN 中解析 RSS 提要的像样视频。然而,当我在谷歌上寻找解决方案时,我发现了这个react-native-rss-parser (https://www.npmjs.com/package/react-native-rss-parser)。

它有这个用法示例:

import * as rssParser from 'react-native-rss-parser';

return fetch('http://www.nasa.gov/rss/dyn/breaking_news.rss')
  .then((response) => response.text())
  .then((responseData) => rssParser.parse(responseData))
  .then((rss) => {
    console.log(rss.title);
    console.log(rss.items.length);
  });

如何将提要解析为数组?例如:

constants/Stories.js

export const HomeScreenStories = ([
  {
    pic: rss.items[0].imageUrl ,
    title: rss.items[0].title,
    caption: rss.items[0].description,
  }
])

更新

constants/Stories.js

import shuffleArray from '../utils/shuffleArray'
import * as rssParser from 'react-native-rss-parser'

export const HomeScreenStories = ([
    pic: rss.items[0].imageUrl,
    title: rss.items[0].title ,
    caption: rss.items[0].description,

    /* HOW DO I PARSE THE RSS FEED INTO HERE??? */
])

【问题讨论】:

  • 你试过用他们的例子来实现它吗? rss.items 可能就是你要找的数组
  • 是的,但是当我运行 expo start 时它显示:“找不到变量 rss”

标签: javascript react-native rss rss-reader


【解决方案1】:

我在我的实现中使用 Axios,但是任何请求库都应该可以工作。或者只是获取。

import * as rssParser from 'react-native-rss-parser';
async componentDidMount() {
  const res = await axios.get(url, {
    responseType: 'text'
  });
  try {
    const parsed = await rssParser.parse(res.data);
    this.setState({ rssFeeds: parsed.items });
  } catch(err) {
    .....
  }
}

编辑:更新了解决方案的建议


return fetch('http://www.nasa.gov/rss/dyn/breaking_news.rss')
  .then((response) => response.text())
  .then(async (responseData) => {
    const rss = await rssParser.parse(responseData);
    console.log(rss.title);
    console.log(rss.items.length);
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 2012-06-12
    • 2018-01-31
    相关资源
    最近更新 更多