Merhabalar,
Bu makalemde sizlerle özellikle birçok topluluk sitesinde en çok sorulan sorulardan birisi olan XML Parser Modellerinden bahsediyor olacağım.
Öncelikle neden XML Verilerini parse etmek zorundayiz sorusuna cevap vererek baslayalim. XML bagimsiz iki uygulama arasindaki veri transferi standardi oldugundan XML içinde tasinan verileri ayristirarak uygulamamiz içinde kullanabilecegimiz ve uygulamamiz tarafindan anlasilabilecek veriye dönüstürmemiz gerekmektedir. Öyleyse kisaca XML Parse işlemini elimizdeki XML verisini uygulamamizin anlayabilecegi veriye dönüstürme işlemi olarak özetleyebiliriz.
Birçok firma tarafindan gelistirilen XML Parser’lar bulmak mümkündür. Bunlarin baslicalari ;
- Microsoft MSXML parser
- IBM XML4J package
- Oracle XML package seklinde siralayabiliriz.
Ben bu makalemde size en çok kullanilanlardan biri olarak düsündügüm Microsoft MSXML Parser’i tanitiyor ve bu konuda örnekler veriyor olacağım. Öncelikle MSXML parser bir COM nesnesi oldugu için hem istemci ve hem sunucu tarafinda da çalisabildigini, Microsoft MSXML’in agaç tabanli işlem modeli üzerine insa edilmis olan Document Object Model üzerinde çalistigini hatirlatalim.
Ben uygulamamizda kullanmak üzere asagidaki gibi küçük bir xml örnegi gelistirdim. Anlatimimda bu küçük uygulamayi kullanacagim.
<?xml version="1.0" encoding="iso-8859-9" ?>
<root>
<kitaplarimiz>
<kitapadi>MSXML</kitapadi>
<yazar>Gürcan SERBEST</yazar>
<oylesinekod>1111</oylesinekod>
</kitaplarimiz>
<kitaplarimiz>
<kitapadi>VB.NET</kitapadi>
<yazar>Gürcan SERBEST</yazar>
<oylesinekod>222</oylesinekod>
</kitaplarimiz>
</root>
Ben bu xml dosyasini bilgisayarima kitaplar.xml olarak kaydettim ve öyle çagiracagim. XML verimizi açip okumadan önce uygulamama bir adet Xml1 adinda bir XML nesnesi ekliyorum. Daha sonra az önce yaratip bilgisayarimiza kitaplar.xml olarak kaydettigimiz XML tipindeki dosyamizi uygulamamizda kullanabilmemiz için
Xml1.Document.Load (“kitaplar.xml")
komutu ile XML tipindeki dosyamizi çagiriyoruz.
kok = xml1.Document.DocumentElement
kodunu kullanarak MSXML parser'in Document nesnesinin DocumentElement metodu ile kitaplar.xml dosyamizin kök’üne erisiyoruz. Kullandigimiz XML dosyamizin içinde ne kadar 2 kütük veri olsa da daha büyük verilerle kullandigimizi düsünerek dosya içindeki verileri son veriye kadar
For i = 1 to kok.childNodes.Length
Next i
yukaridaki dongu ile okuyor ve her bir veriyi
root.childNodes.item(i).firstChild.text
komutu ile “i” degiskenine atiyoruz.
Peki ne yapar bu yukaridaki komut derseniz. Yukarida belirttigimiz komut kök elemanin altindaki kitaplar kümesininilk elemaninin içerigini karsimiza getirir. ChildNodes.Item(i) ilede kümelerdeki her hangi bir eleman’a indeks'le ulasmamizi saglar.
Sira geldi sona kitaplar.xml içindeki kitaplar listemizdeki kitap isimlerini getirmek içinse
Kitapadlari = Xml1.Document.GetElementsByTagName("kitapadi")
Kodunu kullanarak listeleyebiliriz.
Bu gerçeklestirdigimiz XML Parser uygulamasinda XML Parser’imiz ile kitaplar.xml dosyasi içindeki kitap isimlerimizi programimizda listeledik. Umarim yeni ögrenimlere vesile olmustur. Bir sonraki makale’de görüşmek üzere
Gürcan SERBEST