首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rss格式不正确(无效令牌)- ReactJS

rss格式不正确(无效令牌)- ReactJS
EN

Stack Overflow用户
提问于 2019-08-25 11:31:59
回答 1查看 221关注 0票数 0
代码语言:javascript
复制
XML parsing error: <unknown>:16:32: not well-formed (invalid token) [help]

<itunes:category text="Society & Culture">

我不知道怎样才能纠正这个错误。你看,我把我们所有的节目都存储在mongodb里,分类是由Apple列出的,我们需要进入的类别是社会与文化--因为它们似乎不仅仅是一个娱乐类别。

我想知道,当显示& simple时,如何才能使这一行代码不被填充。

代码语言:javascript
复制
'\n<itunes:category text="'+show.category+'">';

全码

代码语言:javascript
复制
router.get('/shows/:id', (req, res) => {
    var url = req.params.id;


    /*var obj = {
        items: [{
            name: url,
            _id: 1
        }, {
            name: 'two',
            _id: 2
        }, {
            name: 'three',
            _id: 3
        }],
        blah: 'http://www.google.com',
        when: new Date(),
        boolz: true,
        nullz: null
    };

    console.log(serializer.render(obj));*/

    var ep ='';
    var query = {};
    var epi='';
    query['url']=url;
    console.log(url);
    ShowModel.findOne(query).exec(function(err, show) {
        if (!err){ 

            var q = {}
            q['show_id']=show._id;
            EpisodeModel.find(q).sort('-pubDate').exec(function(er, a) {
                if (!er){ 
                   // console.log(a);
                    /*{a.map(a => (
                        ep += '\n<item>'+
                             '\n<title>'+a.title+'</title>'+
                             '\n<itunes:summary>'+a.summary+'</itunes:summary>'+
                             '\n<description>'+a.description+'</description>'+
                             '\n<link>'+a.link+'</link>'+
                             '\n<enclosure url="'+a.enclosureurl+'" type="audio/mpeg"></enclosure>'+
                             '\n<pubDate>Thu, 21 Dec 2016 16:01:07 +0000</pubDate>'+
                             '\n<itunes:author>Author Name</itunes:author>'+
                             '\n<itunes:duration>00:32:16</itunes:duration>'+
                             '\n<itunes:explicit>no</itunes:explicit>'+
                             '\n<guid>http://example.com/podcast-1</guid>'+
                             '\n</item>'                        
                      ))}*/
                      for(var k in a) {

                       // console.log(a[k].title);
                        ep+= '\n<item>'+
                             '\n<title>'+a[k].title+'</title>'+
                             '\n<itunes:summary>'+a[k].summary+'</itunes:summary>'+
                             '\n<description>'+a[k].description+'</description>'+
                             '\n<link>'+a[k].link+'</link>'+
                             '\n<enclosure url="https://dts.podtrac.com/redirect.mp3/'+a[k].enclosureurl+'" length="'+a[k].enclosurebyts+'" type="audio/mpeg"></enclosure>'+
                             '\n<pubDate>'+sdate(a[k].pubDate)+'</pubDate>'+
                             '\n<itunes:author>'+a[k].author+'</itunes:author>'+
                             '\n<itunes:episodeType>full</itunes:episodeType>'+
                             '\n<itunes:season>'+a[k].season+'</itunes:season>';
                             if(a[k].episode_no) ep+='\n<itunes:episode>'+a[k].episode_no+'</itunes:episode>';
                         ep+='\n<itunes:duration>'+a[k].duration+'</itunes:duration>'+
                             '\n<itunes:explicit>'+a[k].explicit+'</itunes:explicit>'+
                             '\n<guid>'+a[k].link+'</guid>'+
                             '\n</item>'
                        }

                }else{throw er;}
             // console.log(ep);





            if(show.subcategory){var subcategory = '<itunes:category text="'+show.subcategory+'"/>';}
            var feed = '<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0">'+
            '\n<channel>'+
                '\n<title>'+show.title+'</title>'+
                '\n<link>'+show.link+'</link>'+
                '\n<language>en-us</language>'+
                '\n<itunes:subtitle>'+show.subtitle+'</itunes:subtitle>'+
                '\n<itunes:author>Radio Media PTY LTD</itunes:author>'+
                '\n<itunes:summary>'+show.summary+'</itunes:summary>'+
                '\n<description>'+show.description+'</description>'+
                '\n<itunes:owner>'+
                    '\n<itunes:name>Radio Media PTY LTD</itunes:name>'+
                    '\n<itunes:email>podcast@radiomedia.com.au</itunes:email>'+
                '\n</itunes:owner>'+
                '\n<itunes:explicit>'+show.explicit+'</itunes:explicit>'+
                '\n<itunes:image href="'+show.icon+'" />'+
                '\n<itunes:category text="'+show.category+'">';
                    if(subcategory) feed += subcategory; 
                feed +='\n</itunes:category>'+
                '\n<atom:link href="http://api.radiomedia.com.au/api-access/shows/'+url+'" rel="self" type="application/rss+xml" />';

            feed += ep;    

            feed += '\n</channel>'+
            '\n</rss>';   
            console.log(ep); 

            res.header('Content-Type', 'text/xml');
            res.send(feed);
            //process.exit();
        }); } else { throw err; }

    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-13 06:52:20

来自XML定义

符号字符(&)和左角括号(<)不得以文字形式出现,除非用作标记分隔符,或在注释、处理指令或CDATA部分中。如果他们需要在其他地方,他们必须逃脱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57645628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档