Logo tr.removalsclassifieds.com

XmlDocument ve XPathDocument Arasındaki Fark (Tablolu)

İçindekiler:

Anonim

Microsoft Office ve Google belgelerinde dosya biçimini, B2B veri alışverişlerini vb. içeren geniş bir uygulamaya sahip oldukları için XML dosyalarının işlenmesi çok yaygındır. Hem XmlDocument hem de XPathDocument, XML dosyalarını işlemek için çeşitli yollar veya daha doğrusu ad alanlarıdır. Ancak, farklı bir yaklaşımları vardır ve özellikten özelliğe de farklılık gösterirler. XmlDocument ve XPathDocument kullanımı, kullanıcının belirli bir XML belgesiyle gerçekleştirmesi gereken işlevlerin sayısına bağlıdır.

XmlDocument vs XPathDocument

XmlDocument ve XPathDocument arasındaki fark, XmlDocument'in hem okuma hem de yazma yeteneklerine sahip olması, XPathDocument'in ise dosyaları yalnızca XML biçiminde okuyabilmesidir. XPathDocument'in herhangi bir yazma özelliği olmadığından, boyutu daha hafiftir, ancak XmlDocument'in esnekliğinden yoksundur, çünkü ikincisinde daha fazla işlev gerçekleştirilebilir.

XmlDocument, XML belgesini temsil eden bir bellek içi sınıf olarak tanımlanır. Kullanıcılar, bir belgede XML yükleme, doğrulama, ekleme, düzenleme ve konumlandırma gibi çeşitli işlevleri gerçekleştirmek için bu sınıfı kullanabilir. XmlDocument, W3C XML DOM (Belge Nesne Modeli) Düzey 1 ve Düzey 2 Çekirdeği'ni uygular. XmlDocument, bir XML'in DOM'a yüklenmesini ve ardından gerekli değişiklikleri yapmasını sağlar.

XPathDocument sınıfı ayrıca XML belgesinin bellek içi bir temsilini sağlar, ancak XmlDocument'in aksine herhangi bir yazma becerisine izin vermez. XPathDocument, XPath veri modelini kullanarak salt okunur bir özellik sağlar. XPathDocument, hem.NET Core hem de.NET Framework için geçerlidir.

XmlDocument ve XPathDocument Arasındaki Karşılaştırma Tablosu

Karşılaştırma Parametreleri

XmlBelgesi

XPathBelgesi

Yaklaşmak XmlDocument, nesne yönelimli bir yaklaşıma sahiptir. Bu, bir nesnenin oluşturulmasından ve belirli bir dosyaya bağlanmasından oluşur. XPathDocument veri odaklı bir yaklaşıma sahiptir.
Okuma yazma XmlDocument, yeni düğümler ekleme ve mevcut düğümleri silme ile birlikte hem okuma hem de yazma işlevlerini gerçekleştirebilir. XPathDocument yalnızca okuma işlevini gerçekleştirebilir ve bir XML belgesini değiştirme seçeneğine sahip değildir.
Esneklik XmlDocument, okuma, yazma, silme, ekleme ve öznitelikleri değiştirme gibi çeşitli işlevleri gerçekleştirebildiğinden, çok esnektir. XPathDocument, XmlDocument kadar esnek değildir, çünkü eski yalnızca XML dosyalarını okuyabilir.
Belge oluşturma XmlDocument, sıfırdan bir belge oluşturabilir ve ardından belgede değişiklik yapabilir. XPathDocument belge oluşturamaz, bu nedenle kullanıcı dosyaya erişmeden önce dosyanın var olduğundan emin olmalıdır.
Hız XmlDocument, büyük dosyalar sadece okumak için açıldığında işlemi yavaşlattığı için tercih edilmez. Basitliği nedeniyle, XPathDocument büyük dosyaları hızla açabilir ve okuyabilir.

XmlDocument nedir?

Dosyanın ve XmlDocument sınıfının niteliklerini okuyabilen, yazabilen ve değiştirebilen bir XML belgesinin bellek içi temsili. Bu kadar çok işlevi yerine getirdiğinden, genel olarak tüm örnekler ve amaçlar için XpathDocument yerine XmlDocument tercih edilir. Ancak, XmlDocument, dezavantajlarından biri olan çok büyük dosyaları açma sürecini yavaşlatır.

DOM'a bir XML dosyası açarken, kullanıcının bahsettiği belirli dosya konumu boşsa, yeni bir XML oluşturur ve onu yükler. Bu, XmlDocument'in en büyük avantajlarından biri, anında yeni bir dosya oluşturup üzerinde değişiklik yapabilmesidir.

XmlDocument, kullanıcının bir dosyanın çeşitli düğümleri arasında gezinmesini sağlar. Hem ana hem de alt düğüme erişebilir ve ayrıca kardeş düğümler arasında ileri ve geri gezinebilir. XmlDocument kullanılırken, verilerin bir veya birden çok düğümünü bulmak için XPath sorgu dizesi kullanılır.

XmlDocument, farklı seviyelerdeki çeşitli düğümleri bulmanın ve bunlara erişmenin yanı sıra, düğümleri ekleyebilir veya düzenleyebilir. Yeni düğümler eklemek için CreateElement veya CreateNode yöntemi, silmek için RemoveChild yöntemi kullanılır. Düğümlerin konumları da uygunluğa göre kaydırılabilir.

XPathDocument nedir?

XPathDocument sınıfı, XML dosyalarının salt okunur bellek içi temsili ile tanınır. Çok basit bir sınıftır ve dosyalarda veya düğümlerinde çok fazla işlev gerçekleştirmez. XPathDocument daha büyük dosyaları çok hızlı okuyabilir ve bu nedenle kullanıcının yalnızca bir XML dosyasını okuması gerektiğinde, XmlDocument yerine XPathDocument tercih edilir.

Çeşitli amaçlar için kullanılan XPathDocument için birkaç kurucu vardır. Örneğin, Stream nesnesinde bu sınıfın yeni bir örneğini başlatmak için XPathDocument(Stream) kullanılır. Benzer şekilde, XPathDocument(String) de XML verilerinden yeni bir örnek başlatır, ancak özel olarak Stream nesnesinde başlatılmaz. Diğer oluşturuculardan bazıları XPathDocument(TextReader), XPathDocument(XmlReader), vb.

XPathDocument'te, salt okunur bir XPathNavigator nesnesini başlatmak için CreateNavigator() yöntemi kullanılır. Bu, XPathDocument içindeki tüm mevcut düğümleri okur. Equals (Object) yöntemi, belirtilen nesnenin mevcut nesneye eşit olup olmadığını kontrol etmek için kullanılır. XPathDocument'te sınırlı işlevlerini bile geliştiren başka yöntemler de vardır.

XmlDocument ve XPathDocument Arasındaki Temel Farklar

Çözüm

Hem XmlDocument hem de XPathDocument, XML dosyalarının bellek içi temsilleridir. XmlDocument seçildiğinde, XML belgesini değiştirmek için birkaç işlevin gerekli olduğu anlamına gelir. Salt okunur amaçlar için XPathDocument tercih edilir.

XPathDocument'i kullanırken, kullanıcı dikkatli olmalı ve XML dosyası için geçerli bir adres vermelidir. Çünkü dosya mevcut değilse, XPathDocument anında bir dosya oluşturamaz ve değişiklikleri uygulayamaz.

Ayrıca, bir XML dosyası yalnızca okuma amacıyla açılıyorsa, kullanıcı XPathDocument sınıfını kullanmalıdır. XPathDocument sınıfı, daha büyük dosyaları çok hızlı bir şekilde açma yeteneğine sahiptir, bu da zamandan tasarruf sağlarken, XmlDocument çok büyük dosyaları okumak dışındaki tüm amaçlar için uygundur.

Referanslar

XmlDocument ve XPathDocument Arasındaki Fark (Tablolu)