Aracılığıyla paylaş


XPathDocument ve XmlDocument Kullanarak XML Verilerini Okuma

XML belgesini System.Xml.XPath ad alanında okumanın iki yolu vardır. Bunlardan biri salt okunur XPathDocument sınıfı kullanarak bir XML belgesini okumak, diğeri ise ad alanında XmlDocument düzenlenebilir System.Xml sınıfı kullanarak bir XML belgesini okumaktır.

XPathDocument Sınıfını Kullanarak XML Belgelerini Okuma

XPathDocument sınıfı, XPath veri modelini kullanarak bir XML belgesinin hızlı, salt okunur, bellek içi bir gösterimini sağlar. Sınıfın XPathDocument örnekleri, altı oluşturucusunun biri kullanılarak oluşturulur. Bu oluşturucular, bir Stream, TextReader veya XmlReader nesnesi ile bir XML belgesinin yanı sıra bir XML dosyasının string yolu kullanılarak okunmasını sağlar.

Aşağıdaki örnekte, bir XML belgesini okumak için sınıfın XPathDocument oluşturucusunun string kullanılması gösterilmektedir.

Dim document As XPathDocument = New XPathDocument("books.xml")  
XPathDocument document = new XPathDocument("books.xml");  

XmlDocument Sınıfını Kullanarak XML Belgelerini Okuma

XmlDocument sınıfı, W3C Belge Nesne Modeli (DOM) Düzey 1 Çekirdek ve Çekirdek DOM Düzey 2'yi uygulayan bir XML belgesinin düzenlenebilir bellek içi gösterimidir. sınıfının örnekleri XmlDocument , üç oluşturucusunun biri kullanılarak oluşturulur. Parametre olmadan sınıf oluşturucuyu XmlDocument çağırarak yeni, boş XmlDocument bir nesne oluşturabilirsiniz. Oluşturucuyu çağırdıktan sonra, xml verilerini bir Load, XmlDocument veya Stream nesneden yeni TextReader nesneye yüklemek ve bir XML dosyasının XmlReader yolunu kullanmak için string yöntemini kullanın.

Aşağıdaki örnekte, sınıf oluşturucusunun XmlDocument parametresiz olarak kullanılması ve Load XML belgesini okuma yöntemi gösterilmektedir.

Dim document As XmlDocument = New XmlDocument()  
document.Load("books.xml")  
XmlDocument document = new XmlDocument();  
document.Load("books.xml");  

XML Belgesinin Kodlamasını Belirleme

Bir XmlReader nesne, önceki bölümlerde gösterildiği gibi bir XML belgesini okumak ve XPathDocument ile XmlDocument nesneleri oluşturmak için kullanılabilir. Ancak, bir XmlReader nesne kodlanmış olmayan verileri okuyabilir ve sonuç olarak herhangi bir kodlama bilgisi sağlamaz.

XmlTextReader sınıfı sınıfından XmlReader devralır, özelliğini kullanarak Encoding kodlama bilgileri sağlar ve bir XPathDocument nesne veya XmlDocument nesne oluşturmak için kullanılabilir.

XmlTextReader sınıfı tarafından sağlanan kodlama bilgileri hakkında daha fazla bilgi için, Encoding sınıf başvurusu belgelerindeki XmlTextReader özelliğine bakın.

XPathNavigator Nesneleri Oluşturma

Bir XML belgesini bir XPathDocument veya XmlDocument nesnesine okuduktan sonra, temel alınan XML verilerini seçmek, değerlendirmek, gezinmek ve bazı durumlarda düzenlemek için bir XPathNavigator nesnesi oluşturabilirsiniz.

Hem XPathDocument hem de XmlDocument sınıfları, XmlNode sınıfına ek olarak, IXPathNavigable ad alanının System.Xml.XPath arabirimini uygular. Sonuç olarak, üç sınıf da nesne döndüren bir CreateNavigatorXPathNavigator yöntem sağlar.

XPathNavigator Sınıfını Kullanarak XML Belgelerini Düzenleme

XML verilerini seçmeye, değerlendirmeye ve gezinmeye ek olarak, XPathNavigator sınıfı, xml belgesini oluşturan nesneye göre bazı durumlarda düzenlemek için kullanılabilir.

XPathDocument sınıfı salt okunurdur, XmlDocument sınıfı düzenlenebilirdir ve sonuç olarak, bir XPathNavigator nesneden oluşturulan XPathDocument nesneler XML belgesini düzenlemek için kullanılamazken, bir XmlDocument nesneden oluşturulanlar bunu yapabilir. XPathDocument sınıfı yalnızca XML belgesini okumak için kullanılmalıdır. Bir XML belgesini düzenlemeniz veya olay işleme gibi sınıf tarafından XmlDocument sağlanan ek işlevlere erişmeniz gereken durumlarda, XmlDocument sınıfı kullanılmalıdır.

CanEdit sınıfının özelliği, bir XPathNavigator nesnenin XPathNavigator XML verilerini düzenleyip düzenleyebileceğini belirtir.

Aşağıdaki tabloda her sınıf için özelliğinin CanEdit değeri açıklanmaktadır.

IXPathNavigable Uygulama CanEdit Değeri
XPathDocument false
XmlDocument true

Ayrıca bakınız