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 isefalse
XmlDocument, çı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.xml
bulunan 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 WriteStartDocument XmlWriter 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.