Aracılığıyla paylaş


XML bildirimiyle seri hale getirme (LINQ to XML)

Bu makalede, C# veya Visual Basic'te XML'yi seri hale getirdiğinizde XML bildirimi oluşturulup oluşturulmayacağının nasıl denetlendiği açıklanır.

yöntemini veya TextWriter yöntemini kullanarak XElement.Save veya File öğesine seri hale getirerek XDocument.Save bir XML bildirimi oluşturur. bir XmlWriteröğesine seri hale getirdiğinizde, yazıcı ayarları (bir XmlWriterSettings nesnede belirtilen) bir XML bildirimi oluşturulup oluşturulmadığını belirler.

yöntemini kullanarak ToString bir dizeye seri hale getiriyorsanız, sonuçta elde edilen XML bir XML bildirimi içermez.

Örnek: XML bildirimiyle seri hale getirme

Aşağıdaki örnek bir XElementoluşturur, belgeyi bir dosyaya kaydeder ve ardından dosyayı konsola yazdırır:

XElement root = new XElement("Root",
    new XElement("Child", "child content")
);
root.Save("Root.xml");
string str = File.ReadAllText("Root.xml");
Console.WriteLine(str);
Dim root As XElement = <Root>
                           <Child>child content</Child>
                       </Root>
root.Save("Root.xml")
Dim str As String = File.ReadAllText("Root.xml")
Console.WriteLine(str)

Bu örnek aşağıdaki çıkışı oluşturur:

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Child>child content</Child>
</Root>

Örnek: XML bildirimi olmadan seri hale getirme

Aşağıdaki örnekte bir XElement öğesine nasıl kaydedilecek gösterilmektedir XmlWriter.

StringBuilder sb = new StringBuilder();
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;

using (XmlWriter xw = XmlWriter.Create(sb, xws)) {
    XElement root = new XElement("Root",
        new XElement("Child", "child content")
    );
    root.Save(xw);
}
Console.WriteLine(sb.ToString());
Dim sb As StringBuilder = New StringBuilder()
Dim xws As XmlWriterSettings = New XmlWriterSettings()
xws.OmitXmlDeclaration = True

Using xw As XmlWriter = XmlWriter.Create(sb, xws)
    Dim root = <Root>
                   <Child>child content</Child>
               </Root>
    root.Save(xw)
End Using
Console.WriteLine(sb.ToString())

Bu örnek aşağıdaki çıkışı oluşturur:

<Root><Child>child content</Child></Root>