云代码解析RSS CDATA后台作业

parse.com Cloud Code parsing RSS CDATA background job

本文关键字:CDATA 后台作业 RSS 代码      更新时间:2023-09-26

我正在学习parse.com云代码。我想创建一个后台作业,它对RSS提要发出http请求。在我得到RSS提要之后,我需要对它进行解析,以获得我想要存储在行的值。在parse.com论坛上,他们建议我们应该使用xmlreader.js和sax.js来解析RSS提要。我也遵循这个问题来创建bg工作,它是成功的,我从这个提要保存标签,如标题,链接和pubDate,但我的问题是,我的RSS提要在描述标签中有CDATA,其中有多个信息,如地区,价格,地址,房间,我不知道如何解析这个CDATA来获得这些值,所以我可以将它们存储在标题或链接标签行中。

这是我的RSS提要的一部分:

<item>
<link>
http://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bilikf.html
</link>
<pubDate>Mon, 19 May 2014 14:12:29 +0300</pubDate>
<description>
<![CDATA[
<a href="http://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bilikf.html"><img align=right border=0 src="http://i.ss.lv/images/2014-04-16/337180/VH4OHU9rSVQ=/1.t.jpg" width="160" height="120" alt=""></a>
 Region: <b>centrs</b><br/>Adress: <b>Brīvības 98</b><br/>Rooms.: <b>3</b><br/>m2: <b>80</b><br/>Sērija: <b>Renov.</b><br/>: <b>7.50 €<br><div class=cc2>5.27 Ls</div></b><br/>Price: <b>600 €/mēn.<br><div class=cc2>422 Ls/mēn.</div></b><br/><br/><b><a href="http://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bilikf.html">Apskatīt sludinājumu</a></b><br/><br/>
]]>
</description>
</item>

这是我的后台工作,我解析标题,pubDate和链接标签,但我不知道如何解析描述标签,以获得其他值。

Parse.Cloud.job("bgJob", function(request, status) {
  // 
  Parse.Cloud.useMasterKey();
  //make http request
  Parse.Cloud.httpRequest({
  url: 'http://www.ss.lv/lv/real-estate/flats/riga/hand_over/rss/'
  }).then (function(httpResponse) {
    var soapData = httpResponse.text;
    xmlreader.read(soapData, function (err, xmldata) {
         if(err) {
                response.error("Error " +err);
                return console.log(err);
            } 
        var info = [];
        xmldata.rss.channel.item.each(function (i, item) {
            var dzivokli = new Dzivokli();
            dzivokli.set("link", item.link.text());
            dzivokli.set("title", item.title.text());
            dzivokli.set("pubDate", item.pubDate.text());          
            listArray.push(dzivokli);
        });
        var promises = [];
            Parse.Object.saveAll(info, {
                    success: function(objs) {
                        promises.push(objs);
                        console.log("SAVED ALL!");
                    },
                    error: function(error) { 
                        console.log("ERROR WHILE SAVING - "+error);
                    }   
                });
            return Parse.Promise.when(promises);
  });
  }).then(function() {
    // Set the job's success status
    status.success("RSS feeds tika requestots");
  }, function(error) {
    // Set the job's error status
    status.error("something went wrong.");
  });
});

任何帮助都会很感激。由于

这真的不是parse.com的问题,而是关于如何用javascript解析CDATA文本。由于您只是获取原始html文本,您可以创建jquery对象并以这种方式获取数据。用JS解析一个HTML字符串。

你也可以尝试正则表达式来获取你想要的数据