2014-05-19 87 views
1

我在學習parse.com Cloud Code。我想創建一個後臺作業,它使得RSS請求的HTTP請求。在我得到RSS提要後,我需要解析它以獲取我想要存儲在行中的值。在parse.com論壇上他們提出瞭解析RSS feed的建議,我們應該使用xmlreader.js和sax.js來解析這個RSS feed。我也跟着this問題來創建BG作業,它是succesfull我保存這個飼料標籤,鏈接和pubDate標籤,但我的問題是,我的RSS飼料有CDATA描述標籤,其中有多種信息,如地區,價格,地址,房間,我不知道如何解析這個CDATA來獲取這些值,這樣我就可以像標題或鏈接標籤一樣將它們劃分爲幾行。parse.com Cloud Code解析RSS 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."); 
    }); 
}); 

任何幫助,將不勝感激。謝謝

回答

0

這真的不是一個parse.com問題,但更多的是如何解析JavaScript的CDATA文本。既然你只是得到原始的html文本,你可以創建jquery對象並以這種方式獲取數據。 Parse a HTML String with JS

你也可以嘗試使用正則表達式來獲得你想要的數據。

+0

問題是,我在parse.com論壇的紅色代碼不支持jQuery。當我嘗試將這個xml保存爲字符串,以便我可以使用getElementsByTagName()解析它時,我在作業狀態下的雲代碼控制檯中得到了TypeError:Object。 – Santar

+0

您是否嘗試過使用正則表達式? – bmurmistro