Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Lettura di frammenti di XML con XmlTextReader

Con la classe XmlTextReader è possibile leggere frammenti XML analizzando una stringa come frammento di codice XML.

Nota Nota

In .NET Framework 2.0, si consiglia di creare istanze di XmlReader tramite la classe XmlReaderSettings e il metodo Create. In questo modo è possibile sfruttare completamente tutte le nuove funzionalità introdotte in .NET Framework 2.0. Per ulteriori informazioni, vedere Creazione di lettori XML.

La classe XmlParserContext viene utilizzata per creare un oggetto XmlTextReader con le informazioni sul contesto richieste per analizzare un frammento o un documento XML. La classe XmlParserContext può fornire informazioni quali la XmlNameTable da utilizzare, l'area di validità dello spazio dei nomi, la DTD (Document Type Definition), la codifica, la xml:lang corrente e l'area di validità xml:space.

Di seguito sono indicati i due costruttori che utilizzano la classe XmlParserContext.

public XmlTextReader(string xmlFragment, XmlNodeType fragType, XmlParserContext context);
public XmlTextReader(Stream xmlFragment, XmlNodeType fragType, XmlParserContext context);

Il parametro fragType specifica il tipo di nodo XML, che determina se i dati verranno analizzati come un frammento oppure come un documento XML ben formato.Nella tabella seguente sono elencati il tipo di nodo e il tipo di dati previsti dal parser.In caso di passaggio a un qualsiasi altro valore XmlNodeType viene generato un ArgumentException.

Tipo di nodo

Il frammento contiene

Element

Qualsiasi contenuto valido degli elementi, compresi una combinazione di elementi, commenti, istruzioni di elaborazione, CDATA e testo.

È possibile fornire anche una dichiarazione XML.In questo modo è possibile specificare la codifica per il frammento XML.

Attribute

Il valore di un attributo.

Document

Contenuto di un intero documento XML.Questo tipo impone le regole corrette per il documento XML.

Se la proprietà Encoding del contesto è null, è necessario che il flusso abbia un contrassegno dell'ordine dei byte all'inizio.In caso contrario, si presume che il flusso sia UTF-8.La codifica può anche essere specificata in una dichiarazione XML, che può ricorrere come primo nodo del frammento.

Nell'esempio di codice seguente viene utilizzato XmlTextReader per leggere frammenti XML e scriverli sulla console.

XmlTextReader tr = new XmlTextReader("<element1> abc </element1> 
  <element2> qrt </element2>
  <?pi asldfjsd ?>
  <!-- comment -->", XmlNodeType.Element, null);
while(tr.Read())
    Console.WriteLine("NodeType: {0} NodeName: {1}", tr.NodeType, tr.Name);
    }

Per un esempio di codice che indichi come leggere un frammento XML e come utilizzare l'oggetto XmlParserContext per fornire lo spazio dei nomi da un oggetto XmlNamespaceManager, vedere Lettura di frammenti XML con XmlValidatingReader.

Mostra: