23 Haziran 2017 Cuma

XMLReader Sınıfı

Giriş
Bu sınıf tüm Reader ve Stream sınıflarında olduğu gibi using ile kapatılmalıdır.

Create metodu - Reader
Bu metod parametre olarak verilen stream'i kapatmaz.

Örnek
Şöyle yaparız.
using(var stream = new FileStream(archivePath, FileMode.Open))
using(var reader = XmlReader.Create(stream, readerSettings))
{

}
Örnek
Şöyle yaparız.
string xml = ...;
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
  ...
}
Örnek
Şöyle yaparız.
StreamReader sr = ...;
using (XmlReader reader = XmlReader.Create(sr))
{
  ...
}
Create metodu - Uri
Belirtilen XML'i okur. Şöyle yaparız.
using (XmlReader reader = XmlReader.Create(@"C:\Usr\sample.xml"))
{
  ...
} 
Create metodu - Reader + XmlReaderSettings
Girdi olarak verilen stream'i kapatmak için şöyle yaparız.
using (XmlReader reader = XmlReader.Create(new FileStream(path, FileMode.Open),
  new XmlReaderSettings() { CloseInput = true }))
{
  ...
}
EOF Alanı
Şöyle yaparız.
while (!reader.EOF){...}
IsEmptyElement Alanı
Şöyle yaparız.
XmlReader reader = ...
bool isEmpty = reader.IsEmptyElement;
GetAttribute metodu
Attribute değerini okur.
string key = reader.GetAttribute("key");
MoveToContent metodu
Bir sonraki düğüme gider.
reader.MoveToContent();
Name Alanı
Şöyle yaparız.
if (reader.Name != "Asset") {...}
NodeType Alanı
Okunanan düğüm tipini belirtir.
// read until we reach the last element
while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
{...}
Read metodu
Genelde döngü içinde kullanılır. Şöyle yaparız.
while (reader.Read())
{
  ...
}
ReadContentAsAsync metodu
Şöyle yaparız. Birinci parametre okunucak nesnenin tipi içindir, ikinci parametre ise namespace içindir.
List<BlogPosts> blogPosts = reader.ReadContentAsAsync(typeof(List<BlogPosts>), 
null); //change null to any necessary IXmlNamespaceResolver
ReadElementContentAsDateTime metodu
Reader Element tipinden bir düğüm üzerindeyse düğümün metnini döndürür. Reader Element tipinden bir düğüm üzerinde değilse exception atar. Şöyle yaparız.
DateTime d = reader.ReadElementContentAsDateTime ();
ReadElementContentAsDecimal metodu
Reader Element tipinden bir düğüm üzerindeyse düğümün metnini döndürür. Reader Element tipinden bir düğüm üzerinde değilse exception atar. Şöyle yaparız.
decimal d = reader.ReadElementContentAsDecimal ();
ReadElementContentAsInt metodu
Reader Element tipinden bir düğüm üzerindeyse düğümün metnini döndürür. Reader Element tipinden bir düğüm üzerinde değilse exception atar. Şöyle yaparız.
int i = reader.ReadElementContentAsInt ();
ReadElementContentAsString metodu
Reader Element tipinden bir düğüm üzerindeyse düğümün metnini döndürür. Reader Element tipinden bir düğüm üzerinde değilse exception atar. Şöyle yaparız.
string str = reader.ReadElementContentAsString ();
ReadToFollowing metodu
Şöyle yaparız. Çağrıdan sonra işlemin başarılı olup olmadığını kontrol etmek gerekir.
if (reader.ReadToFollowing ("Instructions")){...}
ReadStartElement metodu
Bir sonraki başlangıç tag düğümüne gider.
// jump to next <item>
reader.ReadStartElement ("item");
ReadString metodu
Şöyle yaparız.
reader.ReadString ();


Hiç yorum yok:

Yorum Gönder