XML ile İnternette İletişim
xml January 27th, 2008->
XML Dosyalarini istemci tarafina bir kaç yol ile alabilirsiniz. Bu makalemizde bu islemi XMLTextReader nesnesi ile yapacağız.
XMLTextReader genel özelliklerine bakacak olursak: XMLTextReader, XML Dosyalarini sadece ileri yönde ve sadece okuma amaçlı olarak almaktadır. Islem gerçekleşirken olusan hatalarda XMLException sınıfıdan bir hata yakalar fakat bu kodun çalismasini durdurmaz. fırlatmış olduğu bu hatadan hatanın oluştuğu satırı yakalayabiliriz.
XMLTextReader Sadece Dosyanın yolunu parametre olarak almaktadir. Biz burada parametre olarak yukarıda saydığımız internet yolu gibi fiziksel yol da gösterebiliriz.
Kodumuzu yazmaya baslamadan XML Sınıfını projemize eklememiz gerekiyor.
using System.XML;
Ardindan kodumuzu yazmaya başlayabiliriz.
XmlTextReader xtrRss = new XmlTextReader(”http://www.csharpnedir.com/rss.xml”);
Yukaridaki kod ile CSharpNedir?�e ait olan ve sitedeki makaleler hakkında bilgiler veren XML dosyasını kendi tarafımıza çekmiş olduk.
XMLTextreader nesnesinin bize sagladigi bu verileri bir dataSet nesnesine ReadXml Metoduyla ekleyebiliriz.
DataSet dsRss= new DataSet();
Yeni datasetimizi tanimladik.
dsRss.ReadXml(xtrRss);
ReadXml metoduna parametre olarak XMLTextReader nesnesini gönderiyoruz. Parametre olarak ayrica String, Stream,XMLReader ve TextReader gönderebiliriz.
CSharpNedir?�e ait olan bu XML dosyasini dataSet içine aldığımız zaman üç tane tablo olustuğunu görüyoruz.
İlk tabloda RSS dosyasinin versiyonu, ikinci tabloda Sitemizin adresi ve Üçüncü tabloda ise konu başlıkları yer almaktadir.
DataSetimizi bir Datagrid�e veri kaynağı olarak gösterip elde ettiğimiz bu verileri datagrid içinde görüntüleyebiliriz.
dataGrid1.DataSource=dsRss.Tables[2] ;
Tablo numarası elinizde bulunan veriye göre değişebilir. RSSleri baz aldığımızda konu başlıkları 3. Tabloda bulunduğu için örneğimizde dsRss.Tables[2] tablosunu kullandık.
Peki bu XML dosyasinin verilerini aldık ama şemasını alabilirmiyiz?
Hemen bunun denemesini birlikte yapalim:
dsRss.WriteXmlSchema(”sema.xsd”);

WriteXmlSchema metoduyla Xml dosyasının şemasını fiziksel olarak elde etmis olduk. Projenin bulundugu klasöre baktigimizda sema.xsd dosyasini göruyoruz. Visual Studio bize sema.xsd dosyasini bir veritabani gibi grafiksel bir arayüz ile görmemizi saglamaktadir. Bu sayede CSharpNedir?com�a ait XML dosyasinin şemasını görüyoruz.

CSharpNedir?com�a ait XML dosyasının Şeması
Borland C#Builder yardimiyla hazirladığım örnek Borland Projesi dosyalarını aşağıda bulunan linkten indirebilirsiniz. Burada gördüğünüz kod parçalarını ise SharpDevelop programı yardımıyla hazırladım.

Sharpdevelop programı arayüzü alışık olduğumuz bir formatta.
using System;
using System.Windows.Forms;
using System.Data;
using System.Xml;
void MainFormLoad(object sender, System.EventArgs e)
{
///Bu kodlarda tüm işlemleri formun load olayına koyduk
///Örnek Borland projemizde ise bunları biraz daha
/// düzenli hale getirmeye çalıştık.
XmlTextReader xtrRss = new XmlTextReader(”http://www.csharpnedir.com/rss.xml”);
DataSet dsRss= new DataSet();
dsRss.ReadXml(xtrRss);
dataGrid1.DataSource=dsRss.Tables[2] ;
dsRss.WriteXmlSchema(”sema.xsd”);
}



























Son Yorumlamalar