Node.jsでXMLを生成する

2021/04/20

Node.js

sitemap.xml を自動で生成するためにNode.jsで生成する。

node-xml2js

node.jsでXMLをパースしたり生成することができるライブラリ。

npm install xml2js

使用例

new xml2js.Builder().buildObject(obj) を使用するとObjectからXMLを生成することができる。

const xml2js = require('xml2js');
const builder = new xml2js.Builder();

const urls = ["site1","site2","site3"];

const sitemap = {
  urlset:{
    $:{
      "xmlns": "http://www.sitemaps.org/schemas/sitemap/0.9"
    },
    url:[]
  }
};

urls.forEach(
  (v)=>{
    sitemap.urlset.url.push({
      loc:v
    })
  }
);


var xml = builder.buildObject(sitemap);

console.log(xml);
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>site1</loc>
  </url>
  <url>
    <loc>site2</loc>
  </url>
  <url>
    <loc>site3</loc>
  </url>
</urlset>

fileに書き出す

const fs = require('fs'); を使用する。

const xml2js = require('xml2js');
const builder = new xml2js.Builder();
const obj = {name: "Super", Surname: "Man", age: 23};

const xml = builder.buildObject(obj);

fs.writeFileSync(`hoge.xml`,xml,(err)=>{
  if(err) console.log(err);
});