node.jsのいろいろなモジュール38 – XMLとJSONの相互変換

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

XMLとJSONを変換

node.jsではデータをJSONでやり取りすることも多いです。
しかし、アプリやサービスによってはXMLデータが使われることもあります。
そんなとき、今回紹介するxmljsonモジュールを使用すると、簡単に相互変換を行うことができます。

環境構築方法

今回使用した動作環境は以下のとおりです。

  • OS : MacOS X 10.7.5
  • Node.js : v0.10.8
  • npm : 1.2.23

npmを使用してxmljsonモジュールをインストールしましょう。

% mkdir xmljson
% cd xmljson
% npm init //入力は全部デフォルトでいいです
% npm install xmljson --save

サンプルプログラム作成

まずはXMLからJSONへ変換する方法です。xmljsonモジュールのto_json関数を使用してXMLからJSONへ変換します。

var to_json = require('xmljson').to_json;

//XML文字列を作成
var xml = '<myData>' +
            '<tag1>value1</tag1>' +
            '<tag2>value2</tag2>' +
            '<tag3>value3</tag3>' +
          '</myData>';

to_json(xml, function (error, data) {
    console.log(data);
    // -> { myData: { tag1: 'value1', tag2: 'value2', tag3: 'value3' } }
});

JSONからXMLへの変換も簡単です。to_xml関数を使ってJSONからXMLに変換することができます。

var to_xml = require('xmljson').to_xml;

//JSオブジェクトを作成
var obj = {
 name:"myobject",
 child:{
   name:"child object",
   type:"object"
 }
};

//オブジェクトをJSON文字列に変換
var json = JSON.stringify(obj);

to_xml(json, function (error, xml) {
    console.log(xml);
    // -> <data><name>myobject</name><child><name>child object</name><type>object</type></child></data>
});

まとめ

XML/JSON、どちらの変換も簡単に行うことができます。便利ですね。

参考サイトなど