totorajの開発日記

僕がなんかメモる

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

タイトル通りです。

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

github.com

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

npm install cheerio

XMLモードを有効にする

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

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

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

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

https://github.com/cheeriojs/cheerio/blob/master/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ライセンスです。

ニコ動のマイリストをマイリストページのRSSから取得するやつ · GitHub

おわりに

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

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