Node.js XML Oluşturma

Yazıda Node.js ile XML dosyası oluşturmak için gerekli olan modül ve kullanımı ile ilgili bilgiler yer almaktadır.

Node.js ile platformlar arasında veri taşımak için genellikle JSON formatı kullanılır.

Ancak JSON formatını desteklemeyen platformlar için XML formatında dosya oluşturmak istenebilir.

Node.js ile XML formatında dosyalar oluşturmak için xmlbuilder, xml-writer ve hem okuma hem de oluşturma için xml2js kullanılabilir.

Modül temel olarak JSON formatını XML formatına çevirerek XML dosyası oluşturmaya imkan verir.

Modülü indirmek için

npm install xml2js

komutu veya

npm install xml2js --save

komutu kullanılır.

Modül projeye

const xml2js = require("xml2js");

komutu ile dahil edilir.

JSON formatını XML formatına çevirmek için xml2js modülü içindeki builder nesnesine ait metotlar kullanılır.

"use strict";

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

XML yapısını XML Nedir? yazısında örnek yapıyı JSON formatında oluşturalım.

let kisiler = {
  kisi: [{
    sira: "1",
    adi: "Yusuf Sefa",
    soyadi: "SEZER"
  }]
};

JSON formatını XML formatına çevirmek için builder nesnesine ait buildObject metodu kullanılır

const xml = builder.buildObject(kisiler);

İşlem sonucunda metot dönüş değeri olarak XML formatında bir sonuç verecektir. Sonuç Node.js fs Modülü ile dosyaya yazdırılabilir.

"use strict";

const fs = require("fs");
const xml2js = require("xml2js");
const builder = new xml2js.Builder();

let kisiler = {
  kisi: [{
    sira: "1",
    adi: "Yusuf Sefa",
    soyadi: "SEZER"
  }]
};

const xml = builder.buildObject(kisiler);

fs.writeFile("kisiler1.xml", xml, "utf-8", function (err, data) {

  if (err) throw err;

});

Modül içerisindeki builder nesnesi parametre olarak çeşitli ayarları yapmamıza olanak sağlar.

XML dosyasına ait en üst-kök belirlemek için rootName, XML formatının sıkıştırılmış olarak oluşturulması için renderOpts vb. özellikler kullanılabilir.

"use strict";

const fs = require("fs");
const xml2js = require("xml2js");
const builder = new xml2js.Builder({
  rootName: "kisiler",
  renderOpts: { pretty: false }
});

let kisiler = {
  kisi: [{
    sira: "1",
    adi: "Yusuf Sefa",
    soyadi: "SEZER"
  }]
};

const xml = builder.buildObject(kisiler);

fs.writeFile("kisiler1.xml", xml, "utf-8", function (err, data) {

  if (err) throw err;

});

XML formatı genellikle etiket ve etiket içeriğinden oluşmaktadır.

Ancak etiket özellikleri ve DTD gibi özel eklemeler için JSON formatına ve builder nesnesine çeşitli eklemelerin yapılması gerekir.

let kisiler = {
  kisi: [{
    sira: { '_': 1, "$": { "id": 1 } },
    adi: "Yusuf Sefa",
    soyadi: "SEZER"
  }]
};

XML formatında dosya oluşturma zorluğu modülden modüle değişiklik göstermektedir.

Uygun modülü bulmak için NPM içerisindeki modülleri aramak ve dokümantasyonu okumak faydalı olacaktır.

Node.js Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Bunlar da hoşunuza gidebilir...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir