RSSからメディア情報を抽出する方法
次に、RSSからメディア情報を抽出してみます。このために、Msxml2.DOMDocumentオブジェクトを利用して解析処理を行います。
function getRSS(url) {
var xml = new ActiveXObject("Msxml2.DOMDocument");
xml.async = false; // 同期通信を行う
xml.load(url);
var root = xml.documentElement;
var enclosure = root.getElementsByTagName("enclosure");
for (var i = 0; i < enclosure.length; i++) {
info("");
var item = enclosure[i];
var attr = item.getAttributeNode("url");
if (!attr) continue;
var url = attr.value;
dl_list.push(url);
}
}
これは、前回の「毎朝天気予報をメールするJavaScript (第31回)」でも同じように行っています。
Msxml2.DOMDocumentオブジェクトを作成したら、load()メソッドでRSSをダウンロードします。そして、getElementsByTagName()メソッドを使って、enclosureタグを抽出します(ポッドキャストのRSSでは、enclosureタグにMP3などのURLが書かれているのです)。
◆ ◇ ◆ ◇ ◆
ポッドキャストは、RSSをダウンロードし、そこに書かれているメディアのURLを取り出してダウンロードするという単純な仕組みであることが分かったと思います。
また、今回のプログラムは、せっかくHTAで作ったのですが、RSSを登録する画面を作っていないため、RSSを追加する時はプログラムを書き換えなければなりません。余力がある方は、RSSの登録画面など作り込んでみてはどうでしょうか。