node.jsでのXML2JSONとXPath

JavaScriptだとJSONが扱いやすいですが、XMLを使う場合も少なくありません。
node.jsでXMLJSON形式にする方法と、XPathでノードを取得する方法を調べてみました。

node-xml2js

名前の通りXMLJSONに変換できます。
勿論、普通にJavaScriptのオブジェクトとしてアクセスできます。

var xml2js = require('xml2js');
var fs = require('fs');

var parser = new xml2js.Parser();
fs.readFile(__dirname + '/sample.xml', function(err, data) {
	parser.parseString(data, function(err, result) {
		console.dir(result);
		console.dir(result.root.item[0]);
		console.dir(JSON.stringify(result));
	});
});

libxmljs

インストール時にネイティブなバイナリを作るので、処理が高速です。
DOMの操作や、XPathでのノードの取得ができます。

var libxmljs = require('libxmljs');
var fs = require('fs');

fs.readFile(__dirname + '/sample.xml', function(err, data) {
	var xmlDoc = libxmljs.parseXml(data);
	console.log(xmlDoc.toString());
	console.log(xmlDoc.root().text());

	console.log(xmlDoc.get('//root/item[1]').attr('name').value());
});