How do I get the description and imageUrl inside description tag when parsing an RSS feed using React Native?

孤街醉人 提交于 2019-12-24 05:47:08

问题


This is how an item from the RSS feed that Im trying to parse looks like:

<item>
<title>
Former cop gets 18 years in prison for shooting civilian to death
</title>
<description>
<![CDATA[
<a href="https://e.vnexpress.net/news/news/former-cop-gets-18-years-in-prison-for-shooting-civilian-to-death-4020110.html"><img width=130 height=100 src="https://i-english.vnecdn.net/2019/11/30/phuoc146331574997301-157508140-8364-4799-1575086150_180x108.jpg" ></a></br>A Dong Nai court sentenced a former traffic policeman to 18 years in prison on Friday for fatally shooting a man in a family feud.
]]>
</description>
<pubDate>Sat, 30 Nov 2019 12:00:00 +0700</pubDate>
<link>
https://e.vnexpress.net/news/news/former-cop-gets-18-years-in-prison-for-shooting-civilian-to-death-4020110.html
</link>
<guid>
https://e.vnexpress.net/news/news/former-cop-gets-18-years-in-prison-for-shooting-civilian-to-death-4020110.html
</guid>
<slash:comments>0</slash:comments>
</item>

This is how I get the title from the RSS feed, I'm using react-native-rss-parser (https://www.npmjs.com/package/react-native-rss-parser):

fetch('https://vnexpress.net/rss/tin-moi-nhat.rss')
     .then((response) => response.text())
     .then((responseData) => rssParser.parse(responseData))
     .then((rss) =>  { 
         this.setState(prevState => ({
             ...prevState,

             title0: rss.items[0] ? rss.items[0].title : '',
             caption0: rss.items[0] ? rss.items[0].description : ''
         }))    
     })
const Feeds = ([
        {
        pic: require('../assets/images/image.jpg'), 
        title: this.state.title0,
        caption: this.state.caption0
      },
])

I'm trying to parse the description and the imageUrl which is nested inside the description tag. How would I do that? Any suggestions?


回答1:


using jquery you can parse it and get all the strings inside if you only need the last string you can get the last index at nodeNames list

    str = '<a href="https://e.vnexpress.net/news/news/former-cop-gets-18-years-in-prison-for-shooting-civilian-to-death-4020110.html"><img width=130 height=100 src="https://i-english.vnecdn.net/2019/11/30/phuoc146331574997301-157508140-8364-4799-1575086150_180x108.jpg" ></a></br>A Dong Nai court sentenced a former traffic policeman to 18 years in prison on Friday for fatally shooting a man in a family feud.',
    html = $.parseHTML( str ),
    nodeNames = [];

    // Gather the parsed HTML's node names
    $.each( html, function( i, el ) {
        if(el.nodeName=='#text'){
            nodeNames[ i ] = el.nodeValue;
        }else{
            nodeNames[ i ] = el.innerText;
        }
    });
    console.log(nodeNames);

with only js this will return text content

function parseHTML(html) {
    var t = document.createElement('template');
    t.innerHTML = html;
    return t.content.cloneNode(true).textContent;
}


来源:https://stackoverflow.com/questions/59114033/how-do-i-get-the-description-and-imageurl-inside-description-tag-when-parsing-an

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!