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

Posizione corrente dei nodi in XmlReader

La classe XmlReader fornisce un accesso di tipo forward-only a un flusso o a un file XML. Il nodo corrente corrisponde al nodo XML sul quale è posizionato il lettore. Tutti i metodi chiamati e le azioni intraprese sono relative al nodo corrente e tutte le proprietà recuperate riflettono il valore del nodo corrente.

Il lettore viene fatto avanzare dalle chiamate a uno dei metodi Read. Chiamate ripetute del metodo Read consentono di spostare il lettore al nodo successivo. Questo tipo di chiamate viene normalmente eseguito all'interno di un ciclo While.

Nell'esempio seguente viene mostrato come esplorare il flusso per determinare il tipo di nodo corrente.


reader.MoveToContent();
  // Parse the file and display each of the nodes.
  while (reader.Read()) {
    switch (reader.NodeType) {
      case XmlNodeType.Element:
          Console.Write("<{0}>", reader.Name);
          break;
      case XmlNodeType.Text:
          Console.Write(reader.Value);
          break;
       case XmlNodeType.CDATA:
           Console.Write("<![CDATA[{0}]]>", reader.Value);
           break;
       case XmlNodeType.ProcessingInstruction:
           Console.Write("<?{0} {1}?>", reader.Name, reader.Value);
           break;
       case XmlNodeType.Comment:
           Console.Write("<!--{0}-->", reader.Value);
           break;
       case XmlNodeType.XmlDeclaration:
           Console.Write("<?xml version='1.0'?>");
           break;
       case XmlNodeType.Document:
           break;
       case XmlNodeType.DocumentType:
           Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
           break;
       case XmlNodeType.EntityReference:
           Console.Write(reader.Name);
           break;
       case XmlNodeType.EndElement:
           Console.Write("</{0}>", reader.Name);
           break;
   } 
}


Le proprietà disponibili nella classe XmlReader non sono applicabili a ogni tipo di nodo. La proprietà IsEmptyElement, ad esempio, restituirà un valore true se il nodo corrente è un elemento e termina con una barra "/>". Se si chiama questa proprietà su qualsiasi altro tipo di nodo, viene restituito un valore false, in quanto questa proprietà non è applicabile ad altri tipi di nodo. Per un elenco di tutti i tipi di nodo, vedere Tipi di nodi XML.

Mostra: