PR

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の登録画面など作り込んでみてはどうでしょうか。

クジラ飛行机(くじらひこうづくえ)
 中学時代から趣味でやっていたプログラミングが楽しくていろいろ作っているうちに本職のプログラマーに。現在は、ソフト企画「くじらはんど」にて、WindowsからAndroidアプリまで「楽しく役に立つツール」をテーマに作品を公開している。代表作は、ドレミで作曲できる音楽ソフト『テキスト音楽「サクラ」』や『日本語プログラミング言語「なでしこ」』など。2001年にはオンラインソフトウェア大賞に入賞、2004年度IPA未踏ユースでスーパークリエイターに認定、2010年にOSS貢献者賞を受賞。日本中にプログラミングの楽しさを伝えるため日々奮闘中(ホームページはこちら)。