node.jsでのXML2JSONとXPath
JavaScriptだとJSONが扱いやすいですが、XMLを使う場合も少なくありません。
node.jsでXMLをJSON形式にする方法と、XPathでノードを取得する方法を調べてみました。
node-xml2js
名前の通りXMLをJSONに変換できます。
勿論、普通に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()); });