【Node.js】xml2jsの使用方法

#技術系
written by みよしや

こんにちは、みよしやです。

今回は、xml2jsを使用したXMLをパースについて書いていきます。

XMLとは

XML(Extensible Markup Language)は拡張可能なマークアップ言語です。
HTMLのように決まったタグを記述するのではなく、任意のタグを記述することができます。
また、タグを入れ子にできるため、階層構造でデータを格納することが可能です。

 

xml2jsとは

XMLをJavaScriptオブジェクトへ変換するためのnodeモジュールです。
JavaScriptオブジェクトではなくJSON形式に変換したい場合は、’xml2json’というモジュールを使用してください。

 

xml2jsの使用方法

npm install xml2js

まずはnpmでモジュールをインストールをします。

npmについては当ブログに記事がありますのでこちらをご参照ください。

const xml2js = require( "xml2js" );

次にrequire文でxml2jsを読み込みます。

xml2js.parseString(XMLデータ, function (err, result) {});

parseString()メソッドでJavaScriptオブジェクトへ変換します。
コールバック関数の第一引数にはエラーオブジェクトが、
第二引数には変換されたデータ(JavaScriptオブジェクト)が入ります。

変換に成功した場合にはエラーオブジェクトは空のため、
第一引数の判定後に第二引数を参照する作りにしてください。

const parseString = require('xml2js').parseString;
parseString(XMLデータ, function (err, result) {});

このような書き方も可能です。

node.jsについてはこちらのサイトをご参照ください。

 

サンプルコード

// xml2jsを読み込む
const xml2js = require( "xml2js" );

// サンプルXML文字列作成
const xml = `
   <?xml version="1.0" encoding="UTF-8"?>
      <sample id="sample01">
         <name>taro</name>
         <age>32</age>
         <birthplace>chiba</birthplace>
      </sample>
`;

// XMLパース
xml2js.parseString(xml, function (error, result) {
     // 変換が成功したか判定
     if(error) {
          console.log(error.message);
     } else {
          // 変換後のオブジェクトを出力
          console.log(result);
     }
});

出力結果

sample: {
   $: { id: 'sample01' },
   name: [ 'taro' ],
   age: [ '32' ],
   birthplace: [ 'chiba' ]
}

 

最後に

最近はデータのやり取りはJSON形式が主流ですが、
外部サイトのAPIを使用する際、いまだにXML形式でレスポンスしているものがあります。
そういった場面では今回ご紹介したXMLパースは役立つのではないかと思います。