xml2jsはルート・ノードがらみが慣れないとよくわからない感じ。例えば普通にRSS 2.0のXMLを吐こうとすると、XMLへ変換するオブジェクトの方で属性を指定し、ルート・ノードの名前やXMLプロログはビルダー関数で指定する。と、コードが分断される。
var xml2js = require('xml2js');
var rss = {
$: {
version: '2.0',
'xml:lang': 'ja-JP',
'xmlns:atom': 'http://www.w3.org/2005/Atom'
}
};
var processed = new xml2js.Builder({
rootName: 'rss',
xmldec: {
encoding: 'UTF-8'
}
}).buildObject(rss);
これでようやくよく見るRSS 2.0のフィードのXMLらしく吐ける。
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xml:lang="ja-JP"
xmlns:atom="http://www.w3.org/2005/Atom"></rss>
xml2jsはXMLをパースするにはなかなか便利だけど、出力には向いていないなと感じた。XMLを扱うNode.jsパッケージはこれ! といったのがなかなかないなぁ。