Saturday, March 17, 2012

Menulis dan Membaca File XML pada .NET

XML (Extensible Markup Language) merupakan bahasa markup yang menjadi standar umum untuk keperluan pertukaran data antar sistem yang beraneka ragam. Dengan XML yang memiliki format baku, dapat melakukan pertukaran data antar sistem dengan platform yang berbeda sekalipun.

Dengan XML kita hanya memikirkan format menulisnya sehingga mudah dimengerti oleh yang akan membaca file XML tersebut.

Di dalam .NET diberikan cara mudah untuk membuat dan membaca file XML. Misalnya diberikan format penulisan XML berikut, yang menggunakan attribute dan namespace.



Selanjutnya kode untuk membuatnya adalah sebagai berikut:

FileStream fs = new FileStream("C:\\MadridPlayer.xml", FileMode.Create);

var ListDataPlayer = BusinessClass.GetDataToXML();

XmlWriter w = XmlWriter.Create(fs);
w.WriteStartDocument();
w.WriteStartElement("ns0", "MT_Schaerdz_Req", "http://SCHAERDZ");
w.WriteAttributeString("xmlns", "ns0", null, "http://SCHAERDZ");

w.WriteStartElement("REAL_MADRID");

foreach (var xml in ListDataPlayer)
{
w.WriteStartElement("Player");
w.WriteElementString("NAME", xml.name);
w.WriteElementString("NATIONALITY", xml.nationality);
w.WriteElementString("AGE", xml.age);
w.WriteEndElement();
}
w.WriteEndElement();

w.WriteEndElement();
w.WriteEndDocument();
w.Flush();
fs.Close();

Sedangkan untuk membaca file XML, dengan format XML seperti diatas ada beberapa macam cara. Dari yang sangat ribet sampai yang simple. Pada tulisan ini saya akan mencoba menuliskan cara membaca file XML dengan cara yang simple, mudah, praktis dan tidak bertele-tela. Cara inilah yang biasanya dicarai oleh para programmer, hehhee :D

Sebelumnya untuk cara yang sangat rumit dan panjang dapat dilihat pada TUTORIAL INI. Bagaimana? Mantab sekali kan tutorial tersebut? Nah, bagi yang ingin praktisnya saja, tanpa terlalu lama memahami kode tutorial yang panjang tersebut, dapat mengikuti langkah berikut:

XmlTextReader reader = new XmlTextReader("C:\\MadridPlayer.xml");

reader.Read(); // read XML
reader.Read(); // read MT_Schaerdz_Req
reader.Read(); // read REAL_MADRID

while (!reader.EOF)
{
reader.Read(); // read Player

if (reader.Name != "Player")
{
break;
}

reader.Read(); // read NAME, NATIONALITY, AGE

string nama = reader.ReadElementString("NAME");
string kebangsaan = reader.ReadElementString("NATIONALITY");
string umur = reader.ReadElementString("AGE");

InsertToDatabase(nama, kebangsaan, umur);
}

reader.Close();

Simple kaaan?


Read, Write, XML, .Net Framework, C#

No comments:

Post a Comment