Formattazione dell'output XML con XmlTextWriter

La formattazione dell'output XML con XmlTextWriter è composta da numerose proprietà che concorrono al controllo dell'output di un documento.

La formattazione dell'output XML con XmlTextWriter è composta da numerose proprietà che concorrono al controllo dell'output di un documento. Le proprietà di formattazione sono:

  • Formatting

  • IndentChar

  • Indentation

  • QuoteChar

Formattazione dell'output

I valori validi della proprietà Formatting sono None e Indented, dove None è il valore predefinito. Quando None è il valore selezionato, le proprietà IndentChar e Indentation vengono ignorate e non viene eseguita alcuna formattazione. Se la proprietà Formatting è impostata su Indented, verrà utilizzata la proprietà Indentation dall'applicazione, per vedere quanti IndentChars scrivere per ogni livello della gerarchia, quindi la proprietà IndentChars specificherà quale carattere utilizzare per i rientri. Se la proprietà Formatting è impostata su Indented, per impostazione predefinita Indentation scriverà due IndentChars per ogni livello della gerarchia e il valore predefinito di IndentChars sarà uno spazio. Se la proprietà Formatting è impostata su Indented, gli elementi figlio saranno rientrati in base ai valori di Indentation e IndentChar. Il rientro eseguito da XmlTextWriter dipende dal tipo di nodo. I nodi interessati dalla proprietà Indentation sono i seguenti:

  • DocumentType

  • Element

  • Comment

  • ProcessingInstruction

  • CDATASection

Tutti gli altri tipi di nodi non sono interessati dalla proprietà Indentation e pertanto su tali nodi non viene eseguito alcun rientro.

Il subset interno della DTD non contiene rientri né formattazione. È tuttavia possibile ottenere sia gli uni che l'altra come mostrato nel codice di esempio riportato qui di seguito, nel quale viene illustrata la formattazione del subset interno della DTD.

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);

La proprietà QuoteChar consente di determinare il carattere da utilizzare per racchiudere fra virgolette i valori degli attributi. I valori validi sono:

  • virgoletta singola (&#39;)

  • virgoletta doppia (&#34;)

Il valore predefinito di QuoteChar è la virgoletta doppia &#34;).

Esempio

Nell'esempio seguente viene illustrato come scrivere un frammento XML, impostare la proprietà Formatting su Indented, con un livello di rientro di 4 e un carattere di spazio (l'impostazione predefinita) per il rientro.

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();  
  }
}

Vedere anche

Altre risorse

Scrittura di XML con XmlWriter