RSS 讀唔到內文

![CDATA] tag 內的description點可以讀到?
THX
  1. <channel>
  2.       <title>九天天氣預報</title>
  3.       <link>http://www.weather.gov.hk/wxinfo/currwx/fndc.htm</link>
  4.       <description>九天天氣預報</description>
  5.       <language>zh-tw</language>
  6.       <webMaster>[email protected]</webMaster>
  7.       <copyright>本檔案的內容,包括但不限於所有文本、平面圖像、圖畫、圖片、照片以及數據或其他資料的匯編,均受版權保障。香港特別行政區政府是本檔案內所有版權作品的擁有人,除非預先得到香港天文台的書面授權,否則嚴禁複製、改編、分發、發布或向公眾提供該等版權作品。
  8.        </copyright>
  9.       <image>
  10.          <url>http://rss.weather.gov.hk/img/logo_dblue.gif</url>
  11.          <title>九天天氣預報</title>
  12.          <link>http://www.weather.gov.hk/</link>
  13.       </image>
  14.       <item>
  15.          <guid isPermaLink="false">http://rss.weather.gov.hk/rss/SeveralDaysWeatherWeatherForecast/20170212163000</guid>
  16.          <pubDate>Sun, 12 Feb 2017 08:30:00 GMT</pubDate>
  17.          <title>香港天文台於2017年02月12日16時30分發出之天氣報告</title>
  18.          <category>F</category>
  19.          <author>香港天文台</author>
  20.          <link>http://www.weather.gov.hk/wxinfo/currwx/fndc.htm</link>
  21.          <description><![CDATA[
  22.                                                
  23.                 天 氣 概 況 :<br/>一 股 偏 東 氣 流 會 在 未 來 數 天 影 響 華 南 沿 岸 地 區 , 該 區 氣 溫 將 逐 漸 回 升 。 預 料 受 海 洋 氣 流 影 響 , 接 近 週 末 廣 東 沿 岸 較 為 潮 濕 及 有 薄 霧 。 <p/><p/> 二 月 十 三 日 ( 星 期 一 ) <br/>
  24.                 風    :               
  25.                 東 至 東 北 風 4 至 5 級 , 晚 上 離 岸 間 中 6 級 。  <br/>
  26.                 天 氣 :
複製代碼
  1. <!DOCTYPE html>
  2. <html>
  3.   <head>
  4.     <title>jquery.rss zotero example</title>

  5.     <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">

  6.     <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
  7.     <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
  8.     <script src="../src/jquery.rss.js"></script>

  9.     <script>
  10.       var readTokenFromResponse = function(response, attr) {
  11.         return $(response).find('tr th:contains(' + attr + ')').parent().find('td').text()
  12.       }
  13.       jQuery(function($) {
  14.         $("#rss-feeds").rss("http://rss.weather.gov.hk/rss/SeveralDaysWeatherForecast_uc.xml", {
  15.           entryTemplate: "<ul><li>Title: {title}</li> <li>Author: {author}</li> <li>Desc: {description}</li></ul><br>",
  16.           tokens: {
  17.             year: function(entry, tokens) {
  18.               return new Date(entry.publishedDate).getFullYear()
  19.             }
  20.           }
  21.         })
  22.       })
  23.     </script>
  24.   </head>
  25.   <body>
  26.     <div>
  27.       <h1>jquery.rss zotero example</h1>
  28.       <div id="rss-feeds"></div>
  29.     </div>
  30.   </body>
  31. </html>
複製代碼

本帖最後由 luckiejacky 於 2017-2-14 13:54 編輯

點解硬系讀唔到description?
  1. jQuery(function($)
  2. {
  3.         $("#rss-feeds").rss("http://rss.weather.gov.hk/rss/SeveralDaysWeatherForecast_uc.xml",                  
  4.         {
  5.            entryTemplate:
  6.                          "title: {title}"
  7.                        
  8.         }).show();
  9. })
複製代碼
  1. var rssurl = "http://rss.weather.gov.hk/rss/SeveralDaysWeatherForecast_uc.xml";          
  2.           
  3.           document.write(rssurl);
  4.           
  5.           $.get(rssurl, function(data)
  6.           {
  7.                 var $xml = $(data);
  8.                 $xml.find("item").each(function()
  9.                 {
  10.                         var $this = $(this),
  11.                         item =
  12.                         {
  13.                                 title: $this.find("title").text(),
  14.                                 //link: $this.find("link").text(),
  15.                                 //description: $this.find("description").text(),
  16.                                 //pubDate: $this.find("pubDate").text(),
  17.                                 //author: $this.find("author").text()
  18.                         }
  19.                         //Do something with item here...
  20.                         document.write(item.title);
  21.                 });
  22.           });
複製代碼
UP MUD 春?
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

你讀唔到內文,因為個XML轉做JSON果時,畀jQuery.rss.js改晒啲tag name。
如果要攞XML既<description>,係javascript就要用{body}。

用jQuery.rss.js呢件野好危險,佢要用一個www.feedrapp.info既web server,黎將XML轉做JSON。好處係唔使用XMLHttpRequest(無security既問題),壞處當然係要依賴佢個web server,如果佢down機或者做錯野,你就無晒辦法。

我建議你都係用番啲stand-alone既plug-in (例如:jFeed 之類)。
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <title>jquery.rss zotero example</title>

  5.         <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">

  6.         <script src="http://code.jquery.com/jquery-1.8.3.js"></script>

  7.         <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>

  8.         <script src="./jquery.rss.js"></script>

  9.         <script>
  10.             jQuery( function($) {
  11.                 $("#rss-feeds").rss("http://rss.weather.gov.hk/rss/SeveralDaysWeatherForecast_uc.xml", {
  12.                     entryTemplate: "<ul><li>Title = {title}</li><li>{body}</li></ul>",
  13.                     tokens: {                                                                                            
  14.                         body: function(entry, tokens) {               
  15.                             return "Content =" + entry.content;
  16.                         }
  17.                     }                                                   
  18.                 })
  19.             })
  20.         </script>
  21.     </head>

  22.     <body>
  23.         <div id="rss-feeds"></div>
  24.     </body>
  25. </html>
複製代碼

TOP

如果係PHP就易搞:
  1. $obj = simplexml_load_string($xmlString, 'SimpleXMLElement', LIBXML_NOCDATA);
複製代碼

TOP

Thanks ching..
唔該晒...

TOP

想問多一問,如果用ajax parse,
如果個xml是static的,這是okay
但from url,就唔work.... Why?
  1. $.ajax({
  2.     //url: 'xml/weather.xml',
  3.         url:  "http://rss.weather.gov.hk/rss/SeveralDaysWeatherForecast_uc.xml",
  4.         dataType: 'xml',
  5.         success: function(data)
  6.         {               
  7.                 $(data).find('channel item').each(function() {
  8.                         var title = $(this).find('title').text();
  9.                         document.write(title);
  10.                        
  11.                         var description = $(this).find('description').text();
  12.                         document.write(description);
  13.                 });
  14.                
  15.         },
  16.         error: function() {
  17.                 $('#weather').text('failed to read feed');
  18.         }
  19.        
  20. });
複製代碼

TOP

想問多一問,如果用ajax parse,
如果個xml是static的,這是okay
但from url,就唔work.... Why? ...

問題係你個AJAX直接去讀取另一個domain既野,違返咗Same-origin policy,個browser咪唔畀你咁做。
至於讀xml/weather.xml果個file,因為係同一個server入面,咪無問題囉。

同源政策 (Same-origin policy)

TOP

唔該多一次
Thank you

TOP

相關文章