Aracılığıyla paylaş


Belge Kaydetme ve Yazma

bir XmlDocumentöğesini yükleyip kaydettiğinizde, kaydedilen belge aşağıdaki yollarla özgün belgeden farklı olabilir:

  • PreserveWhitespace yöntemi çağrılmadan önce Save özelliği olarak true ayarlanırsa, belgedeki boşluk çıktıda korunur; bu özellik isefalseXmlDocument, çıktıyı otomatik olarak girintiler.

  • Öznitelikler arasındaki tüm boşluklar tek bir boşluk karakterine indirilir.

  • Öğeler arasındaki boşluk değiştirilir. Önemli boşluklar korunur ve önemsiz boşluk korunmaz. Ancak belge kaydedildiğinde, çıkışı düzgün bir şekilde yazdırarak daha okunabilir hale getirmek için varsayılan olarak Girintileme modunu kullanır.XmlTextWriter

  • Öznitelik değerleri çevresinde kullanılan tırnak karakteri varsayılan olarak çift tırnak olarak değiştirilir. Tırnak karakterini çift tırnak veya tek tırnak olarak ayarlamak için üzerindeki XmlTextWriter özelliğini kullanabilirsinizQuoteChar.

  • Varsayılan olarak, gibi { sayısal karakter varlıkları genişletilir.

  • Giriş belgesinde bulunan bayt sırası işareti korunmaz. Farklı bir kodlama belirten bir XML bildirimi açıkça oluşturmadığınız sürece UCS-2 UTF-8 olarak kaydedilir.

  • öğesini bir dosyaya veya akışa yazmak XmlDocument istiyorsanız, yazılan çıktı belgenin içeriğiyle aynıdır. Yani, XmlDeclaration yalnızca belgede bir tane varsa yazılır ve belgeyi yazarken kullanılan kodlama, bildirim düğümünde verilen kodlamayla aynıdır.

XmlDeclaration Yazma

XmlDocument ve XmlDeclaration yöntemlerine OuterXmlXmlDocument ek olarak , InnerXmlve WriteToüyelerinin ve WriteContentToüyeleri Save bir XML bildirimi oluşturur.

XmlDocument, ve , InnerXmlve WriteContentTo yöntemlerinin WriteToOuterXmlSaveözellikleri için, XML bildiriminde yazılan kodlama düğümden XmlDeclaration alınır. Düğüm yoksa XmlDeclaration , XmlDeclaration not alınmaz. Düğümde XmlDeclaration kodlama yoksa, kodlama XML bildiriminde yazılmaz.

XmlDocument.Save ve XmlDocument.Save yöntemleri her zaman bir XmlDeclarationyazar. Bu yöntemler, kodlamayı yazmakta olduğu yazardan alır. Başka bir ifadeyle, yazıcıdaki kodlama değeri belgedeki ve içindeki kodlamayı XmlDeclarationgeçersiz kılar. Örneğin, aşağıdaki kod çıktı dosyasında out.xmlbulunan XML bildiriminde bir kodlama yazmaz.

Dim doc As New XmlDocument()  
Dim tw As XmlTextWriter = New XmlTextWriter("out.xml", Nothing)  
doc.Load("text.xml")  
doc.Save(tw)  
XmlDocument doc = new XmlDocument();  
XmlTextWriter tw = new XmlTextWriter("out.xml", null);  
doc.Load("text.xml");  
doc.Save(tw);  

Save yöntemi için XML bildirimi, sınıfındaki WriteStartDocumentXmlWriter yöntemi kullanılarak yazılır. Bu nedenle, yönteminin WriteStartDocument üzerine yazılması belgenin başlangıcının nasıl yazılmasını değiştirir.

XmlDeclaration, WriteTove InnerXmlüyelerinin OuterXmlözelliği ayarlanmadıysa Encoding kodlama yazılmaz. Aksi takdirde, XML bildiriminde yazılan kodlama özelliğinde bulunan kodlama ile Encoding aynıdır.

OuterXml Özelliğini Kullanarak Belge İçeriği Yazma

OuterXml özelliği, World Wide Web Consortium (W3C) XML Belge Nesne Modeli (DOM) standartlarının Microsoft uzantısıdır. OuterXml özelliği, xml belgesinin tamamının veya tek bir düğümün ve alt düğümlerinin işaretlemesini almak için kullanılır. OuterXml verilen düğümü ve tüm alt düğümlerini temsil eden işaretlemeyi döndürür.

Aşağıdaki kod örneğinde, bir belgenin tamamen dize olarak nasıl kaydedildiği gösterilmektedir.

Dim mydoc As New XmlDocument()  
' Perform application needs here, like mydoc.Load("myfile");  
' Now save the entire document to a string variable called "xml".  
Dim xml As String = mydoc.OuterXml  
XmlDocument mydoc = new XmlDocument();  
// Perform application needs here, like mydoc.Load("myfile");  
// Now save the entire document to a string variable called "xml".  
string xml = mydoc.OuterXml;  

Aşağıdaki kod örneğinde yalnızca belge öğesinin nasıl kaydedilecekleri gösterilmektedir.

' For the content of the Document Element only.  
Dim xml As String = mydoc.DocumentElement.OuterXml  
// For the content of the Document Element only.  
string xml = mydoc.DocumentElement.OuterXml;  

Buna karşılık, alt düğümlerin InnerText içeriğini istiyorsanız özelliğini kullanabilirsiniz.

Ayrıca bkz.