XML-Ausgabeformatierung mit "XmlTextWriter"
Die Formatierung der XML-Ausgabe mit dem XmlTextWriter umfasst mehrere Eigenschaften, die zusammen die Ausgabe eines Dokuments steuern.
Die Formatierung der XML-Ausgabe mit dem XmlTextWriter umfasst mehrere Eigenschaften, die zusammen die Ausgabe eines Dokuments steuern. Die Eigenschaften für die Ausgabeformatierung lauten:
Formatierung
IndentChar
Indentation
QuoteChar
Formatieren der Ausgabe
Die Formatting-Eigenschaft hat die gültigen Werte None und Indented, wobei None der Standardwert ist. Ist None der ausgewählte Wert, werden die IndentChar-Eigenschaft und die Indentation-Eigenschaft ignoriert, und es erfolgt keine Formatierung. Ist für die Formatting-Eigenschaft Indented festgelegt, überprüft die Anwendung in der Indentation-Eigenschaft, wie viele IndentChars für jede Hierarchieebene geschrieben werden sollen, und IndentChars gibt dann an, welches Zeichen für die Einzüge verwendet werden soll. Ist für die Formatting-Eigenschaft Indented festgelegt, werden für Indentation standardmäßig zwei IndentChars für jede Hierarchieebene geschrieben, und der Standardwert für IndentChars ist ein Leerzeichen. Wenn Formatting auf Indented festgelegt ist, werden die untergeordneten Elemente gemäß den Werten für Indentation und IndentChar eingerückt. Die Art der vom XmlTextWriter festgelegten Einzüge hängt vom Knotentyp ab. Die Indentation-Eigenschaft wird auf folgende Knoten angewendet:
DocumentType
Element
Comment
ProcessingInstruction
CDATASection
Für alle anderen Knotentypen ist die Indentation-Eigenschaft nicht wirksam, und es werden für diese Knotentypen auch keine Einzüge festgelegt.
Die interne Teilmenge der DTD (Document Type Definition) hat keine Einzüge oder Formatierungen. Dies kann jedoch, wie im folgenden Beispiel gezeigt, geändert werden. Im Codebeispiel wird eine Formatierung für die interne Teilmenge der DTD durchgeführt.
String name = "Employees";
String pubid = null;
String sysid = null;
String subset = @"
<!ELEMENT Employees (Employee)+>
<!ELEMENT Employee EMPTY>
<!ATTLIST Employee firstname CDATA #REQUIRED>
<!ENTITY Company 'Microsoft'>]>
";
XmlTextWriter tw = new XmlTextWriter(Console.Out);
tw.WriteDocType(name, pubid, sysid, subset);
Die QuoteChar-Eigenschaft bestimmt, welches Zeichen als Anführungszeichen für Attributwerte verwendet wird. Gültige Werte sind:
Einfaches Anführungszeichen (')
Doppeltes Anführungszeichen (")
Der Standardwert für QuoteChar ist das doppelte Anführungszeichen (").
Beispiel
Im folgenden Beispiel wird ein XML-Fragment geschrieben, wobei für die Formatting-Eigenschaft Indented, für die Einzugsebene der Wert 4 und für das Einzugszeichen ein Leerzeichen (Standardeinstellung) festgelegt wird.
Option Explicit
Option Strict
Imports System
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
'Create a writer to write XML to the console.
Dim writer As XmlTextWriter = Nothing
writer = New XmlTextWriter(Console.Out)
'Use indentation for readability.
writer.Formatting = Formatting.Indented
writer.Indentation = 4
'Write an element (this one is the root).
writer.WriteStartElement("book")
'Write the title element.
writer.WriteStartElement("title")
writer.WriteString("Pride And Prejudice")
writer.WriteEndElement()
'Write the close tag for the root element.
writer.WriteEndElement()
'Write the XML to file and close the writer.
writer.Close()
End Sub 'Main
End Class 'Sample
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create a writer to write XML to the console.
XmlTextWriter writer = null;
writer = new XmlTextWriter (Console.Out);
//Use indentation for readability.
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
//Write an element (this one is the root).
writer.WriteStartElement("book");
//Write the title element.
writer.WriteStartElement("title");
writer.WriteString("Pride And Prejudice");
writer.WriteEndElement();
//Write the close tag for the root element.
writer.WriteEndElement();
//Write the XML to file and close the writer.
writer.Close();
}
}