Node.js XML Okuma

Yazıda Node.js ile XML okumak için gerekli olan XML parser modüllerinin kullanımı ile ilgili bilgiler yer almaktadır.

XML, verileri platformlar arasında taşımak için oluşturulmuş bir standarttır. Oluşturulan XML dosyaları, ayrıştırıcı veya parser denilen yapı sayesinde anlamlı hale getirilir.

XML okuma işlemi için XML Nedir? yazısındaki XML yapısını kullanalım.

<?xml version="1.0" encoding="UTF-8"?>
<kisiler>
  <kisi>
    <sira>1</sira>
    <adi>Yusuf Sefa</adi>
    <soyadi>SEZER</soyadi>
  </kisi>
  <kisi>
    <sira>2</sira>
    <adi>Ramazan</adi>
    <soyadi>SEZER</soyadi>
  </kisi>
  <kisi>
    <sira>3</sira>
    <adi>Sinan</adi>
    <soyadi>SEZER</soyadi>
  </kisi>
  <kisi>
    <sira>4</sira>
    <adi>Mehmet</adi>
    <soyadi>SEZER</soyadi>
  </kisi>
</kisiler>

Node.js fs modülünü kullanarak kisiler.xml isimli XML dosyasını okuyalım.

"use strict";

const fs = require("fs");

fs.readFile("kisiler.xml", "utf-8", function (err, data) {

  if (err) throw err;

  console.log(data);
  
});

XML dosyasını anlamlı hale getirmek için sax, xml-js vb. modüller kullanılabilir.

XML dosyasını hem okumak hem de yazmak için sax ile xmlbuilder modüllerini kullanarak oluşturulmuş olan xml2js eklentisi de kullanılabilir.

Modül temel olarak XML formatını JSON formatına çevirerek XML dosyası içeriğine JSON nesnesi olarak erişmemize 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.

XML dosyalarını anlamlı hale getirmek için xml2js modülü içindeki parser nesnesine ait metotlar kullanılır.

"use strict";

const fs = require("fs");
const xml2js = require("xml2js");
const parser = xml2js.Parser();

fs.readFile("kisiler.xml", "utf-8", function (err, data) {

  if (err) throw err;

  parser.parseString(data, function (err, result) {

    console.log(result);

  });

});

XML ayrıştırma işleminden sonra XML dosyası JSON formatına dönüştürülür.

Örnekteki ilk elemanın adına ve soyadına ulaşalım.

"use strict";

const fs = require("fs");
const xml2js = require("xml2js");
const parser = xml2js.Parser();

fs.readFile("kisiler.xml", "utf-8", function (err, data) {

  if (err) throw err;

  parser.parseString(data, function (err, result) {

    console.log(result.kisiler.kisi[0].adi.toString() + " " + result.kisiler.kisi[0].soyadi.toString());

  });

});

XML formatından JSON formatına dönüştürülen JSON değişkeni üzerinde parse, stringify, döngü .vb işlemlerde yapılabilir.

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