Node.jsでcheerioを使ってXMLを解析する

タイトル通りです。

cheerio という node のモジュールを使って XML を解析して必要な情報をとりだすときのメモです。

cheeriojs/cheerio: Fast, flexible, and lean implementation of core jQuery designed specifically for the server.

インストールは npm でサクッと

npm install cheerio

XML モードを有効にする

ここで 20 分ほどはまりました。

loadメソッドを実行するときにオプションで有効にします。

$ = cheerio(xml, { xmlMode: true });

有効にすることでlinkタグなどがちゃんと読み込まれるようになります。

cheerio/Readme.md#loading

セレクタのエスケープ

タグや ID,Class に:(コロン)などの特殊文字が含まれている場合は直前に\(バックスラッシュ)を 2 つでエスケープします。

$("dc\\:creator").text();

おそらく jQuery と同じだと思われます。

参考:

サンプル

ニコニコ動画のマイリストページの RSS から情報を取り出すサンプルです。

json 形式で出力します。

使い方

node mylist_rss.js "id" "user_session"

user_session は任意です。

非公開の自分のマイリストを取得するときに使います。

例:

node mylist_rss.js 38085032

ソースコード

MIT ライセンスです。

gist:totoraj930/282bec347d471835aa8f99211a4acecb

おわりに

訳あってxml2jsonからcheerioに切り替えたけどなかなか便利ですね。

jQuery っぽく使えるのがすごくいい!