はじめに
javascript を使用して XML ファイル群を作成する必要があり、知見が溜まってきたのでこちらにまとめておきます。
方法
-
xml2js というライブラリを使用しました。
XML ⇔ JSON の変換が可能で、扱いやすかったです。
JSON から XML への変換例
JSON オブジェクト
const jsonObj = {
library: {
$: { name: 'My Library', location: 'City' },
books: {
book: [
{ id: 1, title: 'Book 1', author: 'Author A' },
{ id: 2, title: 'Book 2', author: 'Author B' }
]
}
}
};
変換処理
const xmlbuilder = require('xmlbuilder');
// JSON オブジェクトを XML に変換
const xml = xmlbuilder.create(jsonObj).end({ pretty: true });
console.log(xml);
xmlbuilder
を使用して JSON オブジェクトを XML に変換しています。
library
要素が XML のルート要素として、$
オブジェクトが属性として、books
配列が XML の子要素として変換されます。
結果として以下のように出力されます。
XML 出力
<library name="My Library" location="City">
<books>
<book id="1">
<title>Book 1</title>
<author>Author A</author>
</book>
<book id="2">
<title>Book 2</title>
<author>Author B</author>
</book>
</books>
</library>
XML から JSON への変換例
変換処理
const xml2js = require('xml2js');
const xmlString = `
<library name="My Library" location="City">
<books>
<book id="1">
<title>Book 1</title>
<author>Author A</author>
</book>
<book id="2">
<title>Book 2</title>
<author>Author B</author>
</book>
</books>
</library>
`;
// XML を解析して JSON に変換
xml2js.parseString(xmlString, (err, result) => {
if (err) {
console.error(err);
return;
}
console.log(result);
});
xml2js.parseString(xmlString, callback)
を使用して XML 文字列を JSON に変換しています。