WordPress 有個很方便的功能就是,網址後面加上 /feed,就可以得到 RSS;
若是 post 內容的話,則是加上 /feed?withoutcomments=1。
以[硬塞的]網站為例,http://www.inside.com.tw/2013/09/25/zi-hua-app/feed?withoutcomments=1,用此篇 post 來說明。
1. 首先得利用 URLRequest, URLLoader 去下載 RSS 內容:
import falsh.events.Event;
import flash.net.URLRequest;
import flash.net.URLLoader
public function downloadRSS() : void {
var request : URLRequest = new URLRequest("http://www.inside.com.tw/2013/09/25/zi-hua-app/feed?withoutcomments=1");
var loader : URLLoader = new URLLoader();
loader.addEventListener(flash.events.Event.COMPLETE, loaderOnComplete);
loader.load(request);
}
2. 解析 RSS 內容之一:
public function loaderOnComplete(event : Event) {
var rss : XML = new XML(event.target.data);
// 取得文章標題
var strTitle : String = rss.channel.item.title.text();
}
Action Script 3 方便的地方在於,xml 的 node 就直接變成屬性去存取。
<rss ...
<channel ...
<item ...
<title>「字畫」app:影像與文字解構的相遇</title>
上面程式片段的 strTitle 就會是"「字畫」app:影像與文字解構的相遇"
若同階層相同的 node 不只一個,就得去檢查元素個數:
var lstItem : XMLList = rss.channel.item;
for (var i : int; i<lstItem.length(); i++) {
var item : XML = lstItem[i];
var strTitle : String = item.title.text();
}
3. 解析 RSS 內容之二:
若遇到有 namespace 的 node 則需要 use namespace,例如 item 底下有 <content:encoded>...</content:encoded>
namespace content = "http://purl.org/rss/1.0/modules/content/"; use namespace content; // 重複 ":" 來跳脫(escape) var strContent : String = item.content::encoded.text();
4. 解析 RSS 內容之三:
擷取 post 內容中的圖片網址
var content : XML = new XML(strContent);
// 用兩個 . 取得目前節點下所有名稱為 img 的子(孫,曾孫,...)節點
var lstImg : XMLList = content..img;
for (var j = 0; j < lstImg.length(); j++) {
// 用 @ 去取得 attribute 內容
var strImgSrc : String = lstImg[j].@src;
}文章標籤
全站熱搜
