2009-11-02 12 views
14

XmlDocument veya XmlWriter kullanarak xml dosyaları oluşturabileceğinizi görüyorum.XmlDocument vs XmlWriter

Bir yöntemin bir diğerinin üzerinde kullanılmasıyla ilgili herhangi bir fayda var mı?

cevap

17

XmlWriter yapar. XmlDocument XML verilerini bellekte bir nesne modeli olarak oluşturur.

Belgenin boyutuyla orantılı olarak bellek kullanmadan XML belgeleri oluşturmanız gerektiğinde, XmlWriter kullanın. XML'yi bellekte işlemeniz gerektiğinde - varolan bir XML belgesini bir nesne modeline ayrıştırırken veya rastgele konumlarda öğeler oluştururken veya varolan bir belgeyi güncelleştirirken veya bir belgede arama yapmak için XPath kullanarak XmlDocument kullanıyorsunuz . (Aslında, ikinci durumda sizin için XPathDocument kullanmak istiyorum, ama salt beri hiçbir koşulda Hata , bir XmlWriter kullanamadı.) Tabii ki

o kullanarak bir akışa XML veri yazmak mümkün bir XmlDocument. Ancak bunu yapmak için aslında XmlWriter kullanıyorsunuz, çünkü XmlDocument dahili olarak kullanıyor.

+0

% 99'luk durumlarda olduğu gibi 'XmlWriter'' 'MemoryStream' tür desteğiyle kullanılırken, bellek boyutu farkı ihmal edilebilir. Ancak önemli olan şudur: XmlDocument 'şemaya karşı doğrulanabilir. – ajeh

3

Bu, sizin senaryounuza bağlı olacaktır. XmlDocument tüm belgeyi belleğe yüklerken, XmlWriter bir akış kullanır, bu nedenle büyük XML belgeleriyle çalışırken daha uygundur. Öte yandan XmlDocument kullanımı daha kolay olabilir. Yavaş yani dosya (500 mb ve daha fazla) büyük ama XmlWriter doğrudan

0

XmlDocumentSystem.Xml.XmlNode mağazaları, bellekteki verileri delik XDocument ve XElement ile çalışmak. XML verilerinin akışa dayalı yazımı çok daha basit ve dostça bir API

3

akışı yazıyor kullanımı kolaydır zaman .Net Framework 3.5 Sana tavsiye ediyorum desteklerse

İlgili konular