Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C# / VC#/.NET
XML / Web Serv.
YAZAR HAKKINDA
Feryat Olcay
http://www.csharpnedir.com/
İletişme geçmek için
tıklayın
.
15
Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için
tıklayın
.
Yayınlanan diğer makaleleri için
tıklayın
.
İlgili etiketler:
bilgileri
edilen
farkli
ilgili
iliskin
kullanilan
main()
nesnesinin
sinifi
sorgulamak
sorgusu
static
xmldocument
xmlnode
xmlreader
XML / Web Serv.
Feryat Olcay
YAZI HAKKINDA
Türü
:
Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi
:
Orta
Kategori
:
XML / Web Serv.
Yayınlanma Tarihi
:
12.5.2005
Okunma Sayısı
:
45851
Yorum Sayısı
:
7
yorum yaz
SİTE İÇİ ARAMA
Üye
GİRİŞİ
Üye girişi için
tıklayın
.
Kullanıcı Adı
Şifre
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
Şifremi / Kullanıcı Adımı unuttum.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
Serbest KÖŞE
(?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Turhal Temizer
Conda install environment.yml Package
4.12.2024
Turhal Temizer
Mac OS/X Removing CUDA
4.12.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak
4.12.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi
4.12.2024
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
Feryat Olcay
/
XML / Web Serv.
/
System.Xml Kütüphanesi 2
System.Xml Kütüphanesi 2
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
*
Mesajınız:
System.XML kütüphanesini incelemeye devam edelim. Xml belgelerinde veri sorgulamak için üç farklı sınıf mevcuttur. Bunlar bir önceki makalemizde ayrıntılı olarak imcelediğimiz XmlDocument diğer ikisi de XmlDataDocument ve XPathDocument sınıflarıdır. XmlDataDocument sınıfı diğer iki sınıftan farklı olarak bir dosya yerine kaynak olarak bir dataset ile senkronize olabilmesidir. Bunun dışında metodlar ve kullanım şekilleri biribirine çok benzemektedir. Xml dökümanını sorgulamak için bu üç sınıfta da ortak olarak uygun XPaht sorgusu ile birlikte SelectSingeNode ve SelectNodes metodları kullanırlar. Örneklerimizde kullanacağımız xml dökümanı aşağıdaki gibi olsun.
Şekil 1: Örneklerde kullanacak xml dökümanı
SelectS
ingelNode :
Bir xml dökümanının sadece bir düğümünü sorgulamak için kullanılır.
using System; using System.Xml; public class XmlUygulama { public static void Main() { XmlDocument myDoc = new XmlDocument(); myDoc.Load("myXML.xml"); XmlNode NodeBook; // işlem yapacağımız düğüm satırı NodeBook = myDoc.DocumentElement.SelectSingleNode("book[@ISBN=’1-861002-30-1’]"); //XPath sorgusu book düğümündeki ISBN niteliğinin değer =’1-861002-30-1’ olan düğüm anlamına gelir Console.WriteLine(NodeBook.OuterXml); } }
Kod1 : SelectSingelNode metodunun kullanımı
Şekil 2 : SelectSingelNode için yapılan uygulamanın ekran görüntüsü,
SelecetNodes :
Bir xml dökümanından birden fazla düğüm seçmek için kullanılır.
public static void Main() { XmlDocument myDoc = new XmlDocument(); myDoc.Load("myXML.xml"); XmlNodeList NodeList; NodeList = myDoc.DocumentElement.SelectNodes("/bookstore/book/@title"); //XPath sorgusu xml belgesinde book düğümündeki title niteliğindeki değerlerin hepsini alır foreach (XmlNode adi in NodeList) Console.WriteLine(adi.Value); }
Kod2 : SelectNodes metodunun kullanımı
Şekil 3 : SelectNodes metodunun kullanıma ilişkin örneğin ekran çıktısı
System.Xml kütüphanesinde sık kullanılan terimlere şöyle bir göz atalım. InnerXML : Kullanılan düğüme ilişkin yavru düğümleri ve bu yavru düğümlere ait bilgileri verir. OuterXML : Kulanılan düğüme ait bütün nitelikleri, bilgileri ve yavru düğümleri bilgileri ile verir. Bu iki özelliğin arasındaki farkı aşağıdaki ekran çıktısında da görebilirsiniz. İlk resimde OuterXML özelliği kullanılmış. İkinci resimde de InnerXML özelliği .
Şekil 4 : Seçili düğümün OuterXML özelliği kullanılarak elde edilen ekran çıktısı
Şekil 5 : Seçili düğümün InnerXML özelliği kullanılarak elde edilen ekran çıktısı
ChildNodes : Kullanılan düğüme ait olan yavru düğümleri XmlNode kolleksiyonu şeklinde verir. NextSibling : Kullanılan düğümden hemen sonra gelen düğümü XmlNode sınıfı türünden verir. PreviousSibling :Kullanılan düğümden bir önceki düğümü XmlNode sınıfı türünden verir ParentNode : Kullanılan düğümü kapsayan ana düğümü XmlNode sınıfı türünden verir. HasChildNode : Kullanılan düğüm başka düğümler içeriyorsa true değerini geri döndürür. FirstChild : İlgili dökümanın ilk düğümünü XmlNode sınıf türünden verir. LastChild : İlgili döküman nesnesinin son düğümünü XmlNode sınıfı türünden verir. Copy : İlgili düğümün XmlNode sınıf türünden niteliklerin içeği olmadan kopyasın alır. Clone(bool) : İlgili düğümün XmlNode sınıfı türünden tüm nitelikleri ve değerleri ile birlikte kopyasının alınmasını sağlar. Parametre olarak aldığı boolen değere göre kopyalama işlemini yapar. Boolean değer true ise ilgili düğümün sahip olduğu yavru düğümleri ve bu yavru düğümlerin bütün nitelik ve bilgilerini de alır. Boolena değer false ise sadece ilgili düğümün bilgilerini ve değerlerini yavru düğümler olmadan alır.
XmlDataReader Sınıfı
System.Xml kütüphanesin XmlReader ve buna benzeyen üç farklı sınıf içermektedir. Bu sınflar XmlTextReader, XmlNodeReader ve XmlValidatingReader dır. Bir dosyadan veya karakter katarından elde edilen xml belgesi sadece okumak amacı ile kullanılacaksa bu sınfların tercih edilmesi performan açısından oldukça önemlidir. XmlTextReader : Bir dosyadan, bir karakter katarından veya bir girdi akışından okuma yapmayı sağlayan sınıftır. Xml belgesinin geçerliliğini kontrol eder ve biçimi uygun değilse XMLException türünden hata üretir. Oluşan XmlException sayesinde hatanın nerden kaynaklandığını kolaylıkla bulunması sağlanır. XmlValidatingReader : XmlTextReader oldukça benzemektedir. Fakat XmlValidatingReader bir şema yada DTD(DataType Definition) yardımı ile xml belgesinin geçerliliğini denetleme yeteneğine sahiptir. XmlValidatingReader sınıfı okuna xml ’in geçerlilik denetimi yapabilem konusunda oldukça iyidir ama XmlTextReader kadar randıman sağlamaz ve özellikleri kısıtlıdır. XmlNodeReader : Doğrudan bellekten çalıştığı için diğer sınıflar arasında en hızlı olanıdır. Ayrıca okunan xml in geçerliliğini denetlemek zorunda değildir. Bir belgenin tümünü yada sadece dökümanın bir kısmını okuyabilir. XmlReader ve benzeri sınıfların ortak olarak kullandıkları metodlara şöyle bir göz gezdirelim. Read() : Kullanılan readerın bir sonraki düğümünü okur. Read işlemi sonucunda işlem başarıyla gerçekleşmişse true değerini döndürür; eğer dosya sonuna gelmiş ise false değerinin döndürür. AttributeCount : Mevcut düğümdeki niteliklerin sayısını verir. HasAttribute : Düğüm niteliğe sahip ise true değeri döndürür aksi halde false değeri geri döner. MoveToAttribute : Okunan düğümün ilgili niteliğinin bilgilerini verir.Aşırı yüklenmiş bir kaç versiyonu vardır. EOF : XmlReader nesnesinin sonuna gelip gelinmediğinin kontrolunu yapar. Boolena değer geri döndürür. Yazmış olduğumuz metodları bir örnekle inceliyelim.
public static void Main() { XmlTextReader xmlRd = new XmlTextReader("myXML.xml"); while (xmlRd.Read()) { Console.WriteLine(xmlRd.LocalName); Console.WriteLine(xmlRd.NodeType); if(xmlRd.HasAttributes) for (int i = 0; i < xmlRd.AttributeCount; i++) { xmlRd.MoveToAttribute(i); Console.Write(" {0}={1}", xmlRd.Name, xmlRd.Value); } } }
Kod3 : XmlTextReader kullanımı
XmlReader’ın kullanımına ilişkin bir örnek daha yapalım. Bu örnekte de Sql Server da FOR XML AUTO komutu sayesinde elde edeceğimiz veriyi xml olarak alabiliyoruz. Ve command nesnesinin ExecuteXmlReader metodu geriye XmlReader sınıfından değer döndürür.
public static void Main() { SqlConnection con = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=YEKBUN;Workstation ID=YEKBUN"); con.Open(); XmlReader myXmlReader; SqlCommand cmd = new SqlCommand("SELECT CategoryID, CategoryName FROM Categories FOR XML AUTO",con); myXmlReader = cmd.ExecuteXmlReader(); myXmlReader.Read(); myXmlReader.MoveToContent() ; while (! myXmlReader.EOF) Console.WriteLine(myXmlReader.ReadOuterXml()) ; myXmlReader.Close(); }
Kod4 : XmlReader kullanımı
Şekil 6 : XmlReader kullanımına ilişkin örneğin ekran görüntüsü
Bu makelmizde de .Net’in System.Xml kütüphanesin karışık görünen xml dosyalarının okunmasını ve işlenmesini ne kadar kolaylaştırdığını gördük. Bir sonraki makalemizde görüşmek ümidi ile.
Makale:
System.Xml Kütüphanesi 2 XML ve Web Servisleri Feryat Olcay
Yazılan Yorumlar
Yorum Yaz
TEM
4
2014
cevat aktas
/
üye hakkında
peki elimizde rastgele ürettiğimiz bir stringi xml dökümanı şeklinde nasıl gösterebiliriz acaba yardımcı olabilirmisiniz
HAZ
28
2014
cevat aktas
/
üye hakkında
yazanın eline sağlık cok yararlı oldu teşekkürler..
HAZ
28
2014
cevat aktas
/
üye hakkında
yazanın eline sağlık cok yararlı oldu teşekkürler..
HAZ
28
2014
cevat aktas
/
üye hakkında
yazanın eline sağlık cok yararlı oldu teşekkürler..
HAZ
28
2014
cevat aktas
/
üye hakkında
yazanın eline sağlık cık yararlı oldu teşekkürler..
KAS
8
2009
özkan atmaca
/
üye hakkında
yani herşey güzel. gayet iyi anlatılmış ama şu kodları ve ilgili açıklamlaarı alt alta yazsaydaınız daha iyi olmaz mıydı. anlamak için olağan üstü bi çaba sarfediyorum. hatta yazıyı worde alıp alt alta olacka şekilde ayarladım anca anlıyorum. yönetici arkadaşlar ilgilenirseniz sevinriim.
ARA
29
2006
Mehmet Bülent YILDIZ
/
üye hakkında
Merhabalar xnlPCatalog = Xdoc.DocumentElement.SelectNodes(PRODUCTCATALOG Bu şekilde düğümü okuyrum... Yanlız benim sorunum Xml dosyasında PRODUCTCATALOG xmlns=http:site.comCSchema.xsd Oldugu zaman okuyamıyorum PRODUCTCATALOG bu şekilde oldugu zaman sorunsuz okya biliyoerum bu sorunu nasıl düzelte bilirim. nasıl bi ekleme yapmam lazım yardımcı olursanız sevinirim. xnlPCatalog = Xdoc.DocumentElement.SelectNodes(PRODUCTCATALOG)
Sayfalar :
1
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için
tıklayın
.
Üye değilseniz
Üyel Ol
linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
Bu Konuda Son 10
Eklenen Son 10
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl