| Ana Sayfa | Dersler | Download | Forum |Bize Ulaşın  |Siteni Ekle | Ziyaretçi Defteri |


  .NET FRAMEWORK
  Namespace Oluşturmak ve Kurmak  XMLTEXTWRİTER CLASS
  XMLTEXTREADER
  STİL KONTROLÜ  Object/Relational Mapping(O/RM)

 

XMLTextReader

Daha önceki yazımızda XMLTextWriter Class ından ve kullanımından bahsetmiştik. Bu yazımızda ise XMLTextReader Class'ından bahsetmek istiyorum. XMLTextReader sınıfı sayesinde kod içersinden hızlı, non-cached ve forward-only erişim sağlamamız mümkün. Sınıfın hiyerarşik durumuna bakacak olursak:

System.Object
   System.Xml.XmlReader
      System.Xml.XmlTextReader

şeklinde bir yapı ile karşılaşırız. Sınıfın .Net dillerindeki tanımlanma şekli ise şöyledir:

[Visual Basic]
Public Class XmlTextReader
   Inherits XmlReader
   Implements IXmlLineInfo

[C#]
public class XmlTextReader : XmlReader, IXmlLineInfo

[C++]
public __gc class XmlTextReader : public XmlReader, IXmlLineInfo

[JScript]
public class XmlTextReader extends XmlReader implements
   IXmlLineInfo

XMLTextReader sınıfı belirtilen dokuman içersinde her seferinde bir düğüm olmak üzere yukarıdan aşağıya bir döngü ile ilerler. Bir sonraki düğüme geçmek için XMLTextReader.Read metodunu kullanır. Bu metod şayet hala okunacak düğüm varsa yani EOF durum sözonusu değilse true, okunacak düğüm kalmadığında ise False değerini verir.

Peki düğümden kastımız nedir. Bu konuyu daha önce XML konulu birçok yazımızda açıklamıştık. XML dokuman içindeki açıklamalar, boşlular, başlama imleri, bitiş imleri, içerik ve hatta dosyanın en başında bulunan XML tanımlama imleri bile birer düğümdür.Düğümlerin ne olduğunu daha iyi kavramak için bir XML dosyası hazırlayalım ve düğümleri bir liste halinde ekrana getirelim.

<?xml version="1.0" ?>
<UrunListesi>
   <Urun ID="1" Name="Televizyon">
      <Fiyat>100 YTL</Fiyat>
   <Urun>
   <Urun ID="2" Name="Müzik Seti">
      <Fiyat>50 YTL</Fiyat>
   <Urun>
   <Urun ID="3" Name="Radyo">
      <Fiyat>20 YTL</Fiyat>
   <Urun>
</UrunListesi>

Dim MyFileStream As New FileStream("C:\Documents and Settings\All Users\Documents\urun.xml", FileMode.Open)
Dim MyXMLReader As XmlTextReader

Do While MyXMLReader.Read()
   LblDurum.Text &= "<b>Tip:</b> " & MyXMLReader.NodeType.ToString & "<br>"

   If MyXMLReader.Name <> "" Then
      LblDurum.Text &= "<b>İsim:</b> " & MyXMLReader.Name & "<br>"
   End If

   If MyXMLReader.Value <> "" Then
      LblDurum.Text &= "<b>Değer:</b>" & MyXMLReader.Value & "<br>"
   End If

   If MyXMLReader.AttributeCount > 0 Then
      LblDurum.Text &= "<b>Nitelik:</b> "
      Dim i As Integer
      For i = 0 To MyXMLReader.AttributeCount() - 1
         LblDurum.Text &= " " & MyXMLReader.GetAttribute(i) & " "
      Next
      LblDurum.Text &= "<br>"
   End If

   LblDurum.Text &= "<br>"
Loop

XMlTextreader ın diğer özelliklerine de göz gezdirecek olursak :

- XMLTextReader birçok özellik ve metod destekler ancak bunlar yukarıda gördüğünüz işlemden çok da fazla detaya inmezler sadece XMLTextReader ın esnekliğini artırmaya yararlar.

- ReadString, ReadInnerXML ve ReadOutherXMl metodlarını kullanarak bir XML dokumanın istediğiniz kısmını bir recordset e aktarır gibi okuyabilirsiniz.

Bazı Özellikleri

AttributeCount Her bir node daki nitelik sayısını getirir.
Encoding Dokumanın encoding bilgisini getirir
EOF Okuma esnasında dokumanın sonuna gelip gelmediğini kontrol eder
IsDefault Seçili Node un defaul DTD sini verir
LineNumber Satır numarasını verir
LinePosition Satır konumunu verir
LocalName Seçili Node un local ismini verir
Name Seçili Node un ismini verir

| Ana Sayfa | Dersler | Download | Forum |Bize Ulaşın  |Siteni Ekle | Ziyaretçi Defteri |

Türk MCSD .NET© 2005
Siteyi en kaliteli Internet Explorer 5 ve üzeri versiyonlarinda 800 x 600 pixel çözünürlükte izlemenizi tavsiye ederiz.