0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

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 に変換しています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?