2010年3月15日月曜日

RSSの値を取得するので躓いたのでメモ

bloggerからRSSでswf上にフィードさせたいと思い、XMLを読み込ませるも、各値の取得がなかなかできず困ったので、解決メモです。

大事だったのは、namespaceの設定。「名前空間」についての設定をしてやらないと各ノードの各要素にアクセス出来ませんでした。

具体的には以下のような感じで設定。default xml namespaceとして設定してやると、その後の記述が楽です。
var ns:Namespace = new Namespace("http://www.w3.org/2005/Atom");
default xml namespace = ns;

::::::::::::::::::::::::::::::::::::::::::

で、このブログからのRSSをフィードさせ、各エントリのタイトルを取得するコードメモ。

var myURLLoader:URLLoader = new URLLoader;
var req:URLRequest = new URLRequest('http://playwithflash.blogspot.com/feeds/posts/default');
myURLLoader.load(req);
myURLLoader.addEventListener(Event.COMPLETE,loadHandler);

//namespaceを設定
var ns:Namespace = new Namespace("http://www.w3.org/2005/Atom"); 
default xml namespace = ns;

//各エントリのタイトルを取得して表示。
function loadHandler(e:Event){
    var rss:XML=new XML(e.target.data);
    for(var i:int=0;i<rss.entry.length();i++)
        {
        var tf:TextField=new TextField();
        tf.width=400;
        tf.height=100;
        tf.x=50;
        tf.y=i*30;
        tf.htmlText="■"+rss.entry[i].title.toString();
        addChild(tf);
        }
}

ただ、ネット上にswfファイルをアップすると表示されない不具合があり、現在調査中。。

0 件のコメント:

コメントを投稿