Visual Studio üzerinde C# ile hazırlayacağımız uygulamalara dışarıdan veri çekmek için kullandığımız yöntemlerden biri de XML dosyasından veri çekmektir. XML dosyasından veri almak için öncelikle XML dosyasının nasıl oluşturulduğunu ve hazırlanan projeler kapsamında nasıl kullanıldığını göreceğiz. Bunun için programlama dersi kapsamında gördüğüm örnek üzerinden XML dosyasının bir proje üzerinde kullanımını göstereceğim.
Basit bir resimli sözlük uygulaması üzerinden gideceğiz. Öncelikle aşağıdaki şekilde formumuzu tasarlıyoruz.
Tasarımımızı tamamladıktan sonra projemize Project menüsünden Add New Item seçeneği ile XML File seçeneğini tıklayarak ve isim vererek dahil ediyoruz. Bunu Solution penceresinde.xml uzantılı bir dosya olarak görebiliriz. Fakat oluşturduğunuz bu XML dosyasını debug klasörü içine de kopyalayacağız. Ya da var olan XML leri projemize dışarıdan ekleyerek de kullanabiliriz.
Karşımıza aşağıdaki şekilde boş bir XML dosyası açılacaktır.
Sözlükte kullanacağımız her bir kelimenin türkçe, ingilizce ve resim adını kelime adında bloklar adında XML dosyası içerinde gruplayacağız. Kelime blogu adı altında türkçe kelimeleri turkce blogundan, resimlerin isimlerini resim blogu adı altında, ingilizce kelimeleri ingilizce blogu adında toplayacağız.
Not: Bloglar arasında veri eklerken boşlukların da dikkate alındığı unutulmamalıdır. Özellikle de yol belirten verilerin yazımında sorun çıkabilir.
Projemizde ekli olan bu XML dosyasını kullanmak için projemize XML kütüphanesini dahil edeceğiz.
XML dosyasını XML kütüphanesinin sınıfları olan XmlDocument, XmlNodeList sınıfları ile projemizde kullanacağız. XmlDocunent ile XML nesnemizi oluşturuyoruz. XmlNodeList ile de aynı etiketteki blogları tutmak için bir liste oluşturur. Ayrıca kelimelerin gösteriminde listedeki konumunu tutması için global bir sira değişkeni tanımladık.
Projemizde uygulama çalıştığı anda XML üzerinden işlem yapılacağı için Public Form1( ) blogu içinde yapılması gerekenleri yazacağız. XmlDocunent.Load ile kullanacağımız XML dosyasını belirteceğiz. XmlDocunent.SelectNodes özelliği ile de hangi etiket altındaki blogları kelimeler listesine atayacağımızı belirtiyoruz. Form açıldığında XML dosyası üzerinde yer alan ilk kelime olacağı için buton ile geri alınacak bir kelime olmadığı için geri al butonunu pasif yapıyoruz. XML dosyası üzerinden sıradaki çağrılan kelimeyi getiren show adında oluşturduğumuz metotu çağırıyoruz.
XML dosyasındaki verilerin form üzerindeki nesnelere yerleştirilmesi için bir show adında bir metot oluşturduk. Burada yapılanları açıklayacak olursak; daha sonradan ilk ve son kelime olduğunu belirten kontrolümüzü yaptığımız için öncelikle her iki butonumuzu da aktif yapıyoruz. XmlNode sınıfında dugum adında kelime gruplarının bir alt blokları olan resim, turkce ve ingilizce bloklarındaki verileri tutmak için bir değişken oluşturuyoruz. Sırası ile resim, ingilizce, turkce bloklarındaki verileri çekip bunları XmlNode.InnerText komutu ile form üzerindeki atamak istediğimiz nesnelere atıyoruz. Son olarak XML dosyasından çekilen kelimenin ilk ya da son kelime olup olmadığını kontrol eden bir if yapısı ile kontrol yapıyoruz. Kontrol sağlandığında da butonların pasif olmasını sağlıyoruz.
Ardından ileri ve geri butonlarımızda oluşturduğumuz show metodunu çağrıyoruz. Onun öncesinde geriyse sıramızı azaltıyor ileriyse artırıyoruz ve ona göre XML dosyasındaki indeksini belirliyoruz.
Not: Verileri çekeceğimiz XML dosyasının, kullanacağımız resimlerin debug altında tek bir klasörde bulunmasına dikkat etmeliyiz.
Hiç yorum yok:
Yorum Gönder