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;
}
文章標籤
全站熱搜
創作者介紹
創作者 娜因貓 的頭像
娜因貓

貓的手作用品

娜因貓 發表在 痞客邦 留言(0) 人氣(137)