このページの本文へ

Adobe BridgeのJavaScriptでXMLを操作しよう (3/4)

2010年01月25日 16時55分更新

文●古籏一浩

  • この記事をはてなブックマークに追加
本文印刷

WebサーバーからRSSを読み込んで表示する

 XMLデータの処理が分かったところで、本題であるASCII.jpのRSSを読み込んでみましょう。ASCII.jpのRSSは以下のURLで配信されています。


 Webサーバーからデータを読み込む方法は前回解説しました。前回のスクリプトではHTMLファイルでしたが、サンプル04ではRSS(XML)を読み込んでローカルディスクに保存しています。といっても、読み込み先のURLと保存先のファイル名を変更しただけです。

Webサーバーから読み込んだRSSの内容が表示されます


●サンプル04


#target "Bridge"
// Http, Ftpが使えるようにする
if ( !ExternalObject.webaccesslib ) {
    ExternalObject.webaccesslib = new ExternalObject("lib:webaccesslib");
}
// 取得先のURLと保存先のパスを指定
var url = "http://www.ascii.jp/cate/1/rss.xml";
var filepath = "~/rss_ascii.xml";
// Webサーバーへ接続
var http = new HttpConnection(url);
http.response = new File(filepath);
http.execute();
http.response.close();
// 読み込んだXMLファイルを表示
var fileObj = new File(filepath);
if (fileObj.open("r")){
    var txt = fileObj.read();
    alert(txt);
}


 次に、ローカルに保存したRSSファイルを読み込み、記事のタイトル部分だけを抜き出して表示してみましょう。

 保存したRSSファイルは正しいXMLデータになっているはずなので、ファイル内容をすべて読み込み、new XML()の引数に指定します。これで、XMLオブジェクトとしてRSSフィードにアクセスできます。ASCII.jpの記事はchannel要素内のitem要素にあり、記事のタイトルはtitle要素に記述されています。記事はitem要素の数だけありますからlength()を使って記事の総数を求め、for()を使って記事の総数の分、繰り返しタイトルを読み込んでいきます。

 サンプル05はすべての記事のタイトルを読み込み、アラートダイアログに表示するプログラムです。

サンプル05。ASCII.jpのRSSに含まれるすべての記事のタイトルが表示されます


●サンプル05


#target "Bridge"
// Http, Ftpが使えるようにする
if ( !ExternalObject.webaccesslib ) {
    ExternalObject.webaccesslib = new ExternalObject("lib:webaccesslib");
}
// 取得先のURLと保存先のパスを指定
var url = "http://www.ascii.jp/cate/1/rss.xml";
var filepath = "~/rss_ascii.xml";
// Webサーバーへ接続
var http = new HttpConnection(url);
http.response = new File(filepath);
http.execute();
http.response.close();
// 読み込んだRSSのタイトルを表示
var fileObj = new File(filepath);
if (fileObj.open("r")){
    var txt = fileObj.read();
    var rssData = new XML(txt);
    var text = "";
    var count = rssData.channel[0].item.length();
    for(var i=0; i<count; i++){
        var newsTitle  = rssData.channel[0].item[i].title;
        text = text + newsTitle + "\n";
    }
    alert(text);
}


この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています