ASP.NET ile XML verisine erişim ASP.net ile XML formatındaki bir dosyaya ulaşmayı ve XML formatındaki dosyadan veri okumayı göreceğiz.
Kisaca koddan bahsetmek gerekirse once
DataSet objDataSet = new DataSet();
Komut satiri ile bir yeni bir dataset objesi yaratiyoruz. Daha sonraki satirda veri.Xml satirinda ki bilgileri datasetin içine gömüyoruz. Bir sonraki kodlarda XML formatindaki bir dosyadan okumak bu kadar kolay peki ya XML bir dosyaya yazmak veri eklemek nasil oluyor? gibi bilgiler. Yani veriyi istedigimizx gibi degistirebiliriz ne demek istedigimi asagidaki kodlara bakip daha iyi anliyacaksiniz.
okul.xml adi ile dosyamizi kaydedelim Kod: XML: - <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<?xml version="1.0" ?>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<okullar>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <okul>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] <adi>Avcilar Ilkokolu</adi>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <yeri>Avcilar</yeri>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] </okul>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <okul>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] <adi>Fatih Fen Lisesi</adi>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <yeri>Beylikduzu</yeri>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] </okul>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <okul>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] <adi>Bogazici Universitesi</adi>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <yeri>Bebek</yeri>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] </okul>[/font]
- [FONT='Courier New', Courier, monospace]</okullar> [/font]
Böylece XML dosyamızı hazırlamış olduk şimdi bu dosyaya ulaşıp içindeki veriyi okumayı görelim. Kod: ASP: - <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<%@ Import NameSpace="System.Data" %>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<%@ Import NameSpace="System.Data.OleDb" %>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<script language="C#" runat="server">[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]void Page_Load(object sender, EventArgs e)[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]{[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]DataSet objDataSet = new DataSet();[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet.ReadXml(Server.MapPath("okul.xml"));[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]dgOkul.DataSource = objDataSet.Tables[0].DefaultView;[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dgOkul.DataBind();[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]}[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]***********[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<html>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<body>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<asp :DataGrid ID="dgOkul" Runat="server" />[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]</body>[/font]
- [FONT='Courier New', Courier, monospace]</html> [/font]
ile okul.xml adlı dosyaya bağlanıp içindeki bilgileri ekrana döktük. Çıktı ise aşağıdaki şekilde olacaktır.
adi yeri
Avcilar Ilkokulu Avcilar
Fatih Fen Lisesi Belikduzu
Bogazici Universitesi Bebek Kod: [FONT='Courier New', Courier, monospace]CODE:- [FONT='Courier New', Courier, monospace]DataSet objDataSet = new DataSet(); [/font]
[/font] Komut satırı ile bir yeni bir dataset objesi yaratıyoruz. Daha sonraki satırda okul.xml dosyasında ki bilgileri datasetin içine gömüyoruz. Bir sonraki satirda dgOkul adli DataGridimizin kaynak verisi olarak okudugumuz XML dosyayı göstertiyoruz. Kod: - <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<%@ Import NameSpace="System.Data" %>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<%@ Import NameSpace="System.Data.OleDb" %>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<script language="C#" runat="server">[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]void Page_Load(object sender, EventArgs e)[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]{[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]DataSet objDataSet = new DataSet();[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet.ReadXml(Server.MapPath("okul.xml"));[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]dgOkul.DataSource = objDataSet.Tables[0].DefaultView;[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dgOkul.DataBind();[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]//Varolan satirda degisiklik yapiyoruz[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]objDataSet.Tables["okul"].Rows[0]["adi"] = "kasimpasa lisesi";[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet.Tables["okul"].Rows[0]["yeri"] = "kasimpasa";[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]//Yeni bir satir ekliyoruz[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]DataTable objTable = null;[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]DataRow objNewRow = null;[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objTable = objDataSet.Tables["okul"];[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]objNewRow["adi"] = "besiktas anadolu lisesi";[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objNewRow["yeri"] = "besiktas";[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]objTable.Rows.Add(objNewRow);[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]//Simdi bunu farkli bir XML dosyasi olarak kaydedelim okul1.xml adi ile[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet.WriteXml(Server.MapPath("okul1.xml"));[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]//XML dosyadan okuyalim[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]DataSet objDataSet2 = new DataSet();[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet2.ReadXml(Server.MapPath("okul1.xml"));[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dgOkul1.DataSource = objDataSet2.Tables[0].DefaultView;[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]dgOkul1.DataBind();[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]}[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]***********[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<html>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<body>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<table>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<tr>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<td><asp :DataGrid id="dgOkul" runat="server" /></td>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<td><asp :DataGrid id="dgOkul1" runat="server" /></td>[/font]
<LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]</tr>[/font]
<LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]</table>[/font]
- [FONT='Courier New', Courier, monospace]</body> [/font]
Yukarida ki kodun çıktısı aşağıdaki gibi olacaktır. Kod: adi yeri
Avcilar Ilkokolu Avcilar
Fatih Fen Lisesi Beylikduzu
Bogazici Universitesi Bebek
adi yeri
kasimpasa lisesi kasimpasa
Fatih Fen Lisesi Beylikduzu
Bogazici Universitesi Bebek
besiktas anadolu lisesi besiktas Kısaca kodda neler yaptığımızdan bahsedeyim. İlk bölümde yaptiğımız bir önceki kod ile ayni okul.xml dosyamızı ekranda görüntülüyoruz Daha Sonra ilk satırımızda değişiklik yapıyoruz.
objDataSet.Tables["okul"].Rows[0]["adi"] = "kasimpasa lisesi";
Satırı ile okul table'ındaki birinci satırda bulunan adi isimli alana kasimpasa lisesini atıyoruz. Daha sonraki makalelerimizde XML konusuna daha ayrintılı değineceğiz.
Bundan sonra yaptığımız önce yeni bir DataTable ve DataRow tanımlamak. Ve bunlara yeni ekliyecegimiz değikenleri atıyoruz. Ve ekleme işlemini gerçeklestiriyoruz. Bunları okul1.xml dosyası altında kaydedip ekrana basıyoruz. |