Condividi tramite


XmlTextReader Costruttori

Definizione

Inizializza una nuova istanza dell'oggetto XmlTextReader.

Overload

XmlTextReader()

Inizializza una nuova istanza dell'oggetto XmlTextReader.

XmlTextReader(String, XmlNodeType, XmlParserContext)

Inizializza una nuova istanza della classe XmlTextReader con la stringa e gli oggetti XmlNodeType e XmlParserContext specificati.

XmlTextReader(String, TextReader, XmlNameTable)

Inizializza una nuova istanza della classe XmlTextReader con l'URL e gli oggetti TextReader e XmlNameTable specificati.

XmlTextReader(String, Stream, XmlNameTable)

Inizializza una nuova istanza della classe XmlTextReader con l'URL, il flusso e l'oggetto XmlNameTable specificati.

XmlTextReader(Stream, XmlNodeType, XmlParserContext)

Inizializza una nuova istanza della classe XmlTextReader con il flusso e gli oggetti XmlNodeType e XmlParserContext specificati.

XmlTextReader(String, TextReader)

Inizializza una nuova istanza della classe XmlTextReader con l'URL e l'oggetto TextReader specificati.

XmlTextReader(String, Stream)

Inizializza una nuova istanza della classe XmlTextReader con l'URL e il flusso specificati.

XmlTextReader(String, XmlNameTable)

Inizializza una nuova istanza della classe XmlTextReader con il file e l'oggetto XmlNameTable specificati.

XmlTextReader(Stream, XmlNameTable)

Inizializza una nuova istanza della classe XmlTextReader con il flusso e l'oggetto XmlNameTable specificati.

XmlTextReader(XmlNameTable)

Inizializza una nuova istanza della classe XmlTextReader con l'oggetto XmlNameTable specificato.

XmlTextReader(String)

Inizializza una nuova istanza della classe XmlTextReader con il file specificato.

XmlTextReader(TextReader)

Inizializza una nuova istanza della classe XmlTextReader con l'oggetto TextReader specificato.

XmlTextReader(Stream)

Inizializza una nuova istanza della classe XmlTextReader con il flusso specificato.

XmlTextReader(TextReader, XmlNameTable)

Inizializza una nuova istanza della classe XmlTextReader con gli oggetti TextReader e XmlNameTable specificati.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

XmlTextReader()

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza dell'oggetto XmlTextReader.

protected:
 XmlTextReader();
protected XmlTextReader ();
Protected Sub New ()

Vedi anche

Si applica a

XmlTextReader(String, XmlNodeType, XmlParserContext)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con la stringa e gli oggetti XmlNodeType e XmlParserContext specificati.

public:
 XmlTextReader(System::String ^ xmlFragment, System::Xml::XmlNodeType fragType, System::Xml::XmlParserContext ^ context);
public XmlTextReader (string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext? context);
public XmlTextReader (string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context);
new System.Xml.XmlTextReader : string * System.Xml.XmlNodeType * System.Xml.XmlParserContext -> System.Xml.XmlTextReader
Public Sub New (xmlFragment As String, fragType As XmlNodeType, context As XmlParserContext)

Parametri

xmlFragment
String

Stringa che contiene il frammento XML da analizzare.

fragType
XmlNodeType

Oggetto XmlNodeType del frammento XML. Determina anche il possibile contenuto della stringa del frammento. Vedere la tabella seguente.

context
XmlParserContext

Oggetto XmlParserContext in cui deve essere analizzato xmlFragment. Include l'oggetto XmlNameTable da usare, codificare, ambito dello spazio dei nomi, l'ambito corrente xml:lange l'ambito xml:space .

Eccezioni

fragType non è Element, Attribute o DocumentXmlNodeType.

xmlFragment è null.

Esempio

Nell'esempio seguente viene analizzato un frammento XML. Usa e XmlParserContext il relativo XmlNamespaceManager per gestire la risoluzione dello spazio dei nomi.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   // Create the XML fragment to be parsed.
   String^ xmlFrag = "<book> <title>Pride And Prejudice</title> <bk:genre>novel</bk:genre> </book>";
   
   // Create the XmlNamespaceManager.
   NameTable^ nt = gcnew NameTable;
   XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( nt );
   nsmgr->AddNamespace( "bk", "urn:sample" );
   
   // Create the XmlParserContext.
   XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::None );
   
   // Create the reader. 
   XmlTextReader^ reader = gcnew XmlTextReader( xmlFrag,XmlNodeType::Element,context );
   
   // Parse the XML.  If they exist, display the prefix and  
   // namespace URI of each element.
   while ( reader->Read() )
   {
      if ( reader->IsStartElement() )
      {
         if ( reader->Prefix == String::Empty )
                  Console::WriteLine( "< {0}>", reader->LocalName );
         else
         {
            Console::Write( "< {0}: {1}>", reader->Prefix, reader->LocalName );
            Console::WriteLine( " The namespace URI is {0}", reader->NamespaceURI );
         }
      }
   }

   
   // Close the reader.
   reader->Close();
}
using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    //Create the XML fragment to be parsed.
    string xmlFrag ="<book> " +
                    "<title>Pride And Prejudice</title>" +
                    "<bk:genre>novel</bk:genre>" +
                    "</book>";

    //Create the XmlNamespaceManager.
    NameTable nt = new NameTable();
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
    nsmgr.AddNamespace("bk", "urn:sample");

    //Create the XmlParserContext.
    XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

    //Create the reader.
    XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);

    //Parse the XML.  If they exist, display the prefix and
    //namespace URI of each element.
    while (reader.Read()){
      if (reader.IsStartElement()){
        if (reader.Prefix==String.Empty)
                {
                    Console.WriteLine("<{0}>", reader.LocalName);
                }
                else
                {
            Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName);
            Console.WriteLine(" The namespace URI is " + reader.NamespaceURI);
        }
      }
    }

    //Close the reader.
    reader.Close();
  }
} // End class
Imports System.IO
Imports System.Xml

public class Sample 

  public shared sub Main()

    'Create the XML fragment to be parsed.
    Dim xmlFrag as string ="<book> " & _
                           "<title>Pride And Prejudice</title>" & _
                           "<bk:genre>novel</bk:genre>" & _
                           "</book>" 

    'Create the XmlNamespaceManager.
    Dim nt as NameTable = new NameTable()
    Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(nt)
    nsmgr.AddNamespace("bk", "urn:sample")

    'Create the XmlParserContext.
    Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.None)

    'Create the reader. 
    Dim reader as XmlTextReader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)
  
    'Parse the XML.  If they exist, display the prefix and  
    'namespace URI of each element.
    while (reader.Read())
      if (reader.IsStartElement())
        if (reader.Prefix=String.Empty)
           Console.WriteLine("<{0}>", reader.LocalName)
        else
            Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName)
            Console.WriteLine(" The namespace URI is " + reader.NamespaceURI)
        end if 
      end if
    end while
  
    'Close the reader.
    reader.Close()     
  
  end sub
end class

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare nuove funzionalità.

Questo costruttore analizza la stringa specificata come frammento di XML. Se il frammento XML è un elemento o un attributo, è possibile ignorare le regole di livello radice per documenti XML ben formati. Questo costruttore può gestire le stringhe restituite da ReadInnerXml.

La tabella seguente elenca i valori validi per fragType e il modo in cui il lettore analizza ognuno dei diversi tipi di nodo.

XmlNodeType Frammento può contenere
Elemento Qualsiasi contenuto di elemento valido(ad esempio, qualsiasi combinazione di elementi, commenti, istruzioni di elaborazione, sezioni CDATA, testo e riferimenti alle entità).

È possibile fornire anche una dichiarazione XML. In questo modo è possibile specificare la codifica per il frammento XML, anziché dover impostarla sull'oggetto XmlParserContext .
Attributo Valore di un attributo (la parte all'interno delle virgolette).
Documento Contenuto di un intero documento XML. In questo modo vengono applicate regole a livello di documento.

Vedi anche

Si applica a

XmlTextReader(String, TextReader, XmlNameTable)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con l'URL e gli oggetti TextReader e XmlNameTable specificati.

public:
 XmlTextReader(System::String ^ url, System::IO::TextReader ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (string url, System.IO.TextReader input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.IO.TextReader * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, input As TextReader, nt As XmlNameTable)

Parametri

url
String

URL da usare per la risoluzione di risorse esterne. La proprietà BaseURI è impostata su questo valore. Se url è null, BaseURI viene impostato su String.Empty.

input
TextReader

Oggetto TextReader che contiene i dati XML da leggere.

nt
XmlNameTable

Oggetto XmlNameTable da usare.

Eccezioni

Il valore nt è null.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare nuove funzionalità.

Si presuppone che il costruttore TextReader sia già impostato sulla codifica corretta. Questa operazione viene usata dai client che hanno già letto alcuni elementi dal flusso in uno scenario MIME a più parti.

Vedi anche

Si applica a

XmlTextReader(String, Stream, XmlNameTable)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con l'URL, il flusso e l'oggetto XmlNameTable specificati.

public:
 XmlTextReader(System::String ^ url, System::IO::Stream ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (string url, System.IO.Stream input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.IO.Stream * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, input As Stream, nt As XmlNameTable)

Parametri

url
String

URL da usare per la risoluzione di risorse esterne. La proprietà BaseURI è impostata su questo valore. Se url è null, BaseURI viene impostato su String.Empty.

input
Stream

Flusso contenente i dati XML da leggere.

nt
XmlNameTable

Oggetto XmlNameTable da usare.

Eccezioni

Il valore di input o nt è null.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare nuove funzionalità.

Vedi anche

Si applica a

XmlTextReader(Stream, XmlNodeType, XmlParserContext)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con il flusso e gli oggetti XmlNodeType e XmlParserContext specificati.

public:
 XmlTextReader(System::IO::Stream ^ xmlFragment, System::Xml::XmlNodeType fragType, System::Xml::XmlParserContext ^ context);
public XmlTextReader (System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext? context);
public XmlTextReader (System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context);
new System.Xml.XmlTextReader : System.IO.Stream * System.Xml.XmlNodeType * System.Xml.XmlParserContext -> System.Xml.XmlTextReader
Public Sub New (xmlFragment As Stream, fragType As XmlNodeType, context As XmlParserContext)

Parametri

xmlFragment
Stream

Flusso contenente il frammento XML da analizzare.

fragType
XmlNodeType

Oggetto XmlNodeType del frammento XML. Determina anche il possibile contenuto del frammento. Vedere la tabella seguente.

context
XmlParserContext

Oggetto XmlParserContext in cui deve essere analizzato xmlFragment. Include l'oggetto XmlNameTable da usare, codificare, ambito dello spazio dei nomi, l'ambito corrente xml:lange l'ambito xml:space .

Eccezioni

fragType non è un XmlNodeType di tipo Element, Attribute o Document.

xmlFragment è null.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare nuove funzionalità.

Questo costruttore analizza la stringa specificata come frammento di XML. Se il frammento XML è un elemento o un attributo, è possibile ignorare le regole di livello radice per documenti XML ben formati.

Nella tabella seguente sono elencati valori validi per fragType.

XmlNodeType Frammento può contenere
Element Qualsiasi contenuto di elemento valido(ad esempio, qualsiasi combinazione di elementi, commenti, istruzioni di elaborazione, sezioni CDATA, testo e riferimenti alle entità).

È possibile fornire anche una dichiarazione XML. In questo modo è possibile specificare la codifica per il frammento XML, anziché dover impostarla sull'oggetto XmlParserContext .
Attribute Valore di un attributo (la parte all'interno delle virgolette).
Document Contenuto di un intero documento XML. In questo modo vengono applicate le regole a livello di documento.

Il lettore usa quanto segue per determinare la codifica del flusso.

  1. Controlla la XmlParserContext.Encoding proprietà per determinare la codifica.

  2. Se la Encoding proprietà è null, il lettore verifica la presenza di un contrassegno di ordine di byte all'inizio del flusso.

  3. Se la Encoding proprietà è nulle non viene trovato alcun contrassegno di ordine di byte, il lettore presuppone che il flusso sia codificato in UTF-8.

Vedi anche

Si applica a

XmlTextReader(String, TextReader)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con l'URL e l'oggetto TextReader specificati.

public:
 XmlTextReader(System::String ^ url, System::IO::TextReader ^ input);
public XmlTextReader (string url, System.IO.TextReader input);
new System.Xml.XmlTextReader : string * System.IO.TextReader -> System.Xml.XmlTextReader
Public Sub New (url As String, input As TextReader)

Parametri

url
String

URL da usare per la risoluzione di risorse esterne. La proprietà BaseURI è impostata su questo valore.

input
TextReader

Oggetto TextReader che contiene i dati XML da leggere.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Si presuppone che il costruttore TextReader sia già impostato sulla codifica corretta. Viene usato dai client che hanno già letto alcuni elementi dal flusso in uno scenario MIME in più parti.

Vedi anche

Si applica a

XmlTextReader(String, Stream)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con l'URL e il flusso specificati.

public:
 XmlTextReader(System::String ^ url, System::IO::Stream ^ input);
public XmlTextReader (string url, System.IO.Stream input);
new System.Xml.XmlTextReader : string * System.IO.Stream -> System.Xml.XmlTextReader
Public Sub New (url As String, input As Stream)

Parametri

url
String

URL da usare per la risoluzione di risorse esterne. La proprietà BaseURI è impostata su questo valore.

input
Stream

Flusso contenente i dati XML da leggere.

Eccezioni

input è null.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Vedi anche

Si applica a

XmlTextReader(String, XmlNameTable)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con il file e l'oggetto XmlNameTable specificati.

public:
 XmlTextReader(System::String ^ url, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (string url, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, nt As XmlNameTable)

Parametri

url
String

URL del file che contiene i dati XML da leggere.

nt
XmlNameTable

Oggetto XmlNameTable da usare.

Eccezioni

Il valore nt è null.

Impossibile trovare il file specificato.

Impossibile trovare parte del nome file o della directory.

Il parametro url è una stringa vuota.

Il nome file remoto non può essere risolto.

-oppure-

Si è verificato un errore durante l'elaborazione della richiesta.

url non è un URI valido.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Vedi anche

Si applica a

XmlTextReader(Stream, XmlNameTable)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con il flusso e l'oggetto XmlNameTable specificati.

public:
 XmlTextReader(System::IO::Stream ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (System.IO.Stream input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.IO.Stream * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (input As Stream, nt As XmlNameTable)

Parametri

input
Stream

Flusso contenente i dati XML da leggere.

nt
XmlNameTable

Oggetto XmlNameTable da usare.

Eccezioni

Il valore di input o nt è null.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Decodifica XmlTextReader il flusso usando System.Text.Encoding.

Se si specifica una tabella dei nomi, questo costruttore usa i nomi definiti già in tale tabella.

Vedi anche

Si applica a

XmlTextReader(XmlNameTable)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con l'oggetto XmlNameTable specificato.

protected:
 XmlTextReader(System::Xml::XmlNameTable ^ nt);
protected XmlTextReader (System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Protected Sub New (nt As XmlNameTable)

Parametri

nt
XmlNameTable

Oggetto XmlNameTable da usare.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Vedi anche

Si applica a

XmlTextReader(String)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con il file specificato.

public:
 XmlTextReader(System::String ^ url);
public XmlTextReader (string url);
new System.Xml.XmlTextReader : string -> System.Xml.XmlTextReader
Public Sub New (url As String)

Parametri

url
String

URL del file che contiene i dati XML. La proprietà BaseURI è impostata su questo valore.

Eccezioni

Impossibile trovare il file specificato.

Impossibile trovare parte del nome file o della directory.

Il parametro url è una stringa vuota.

Il nome file remoto non può essere risolto.

-oppure-

Si è verificato un errore durante l'elaborazione della richiesta.

url non è un URI valido.

Esempio

Nell'esempio seguente viene letto un file XML e vengono visualizzati ognuno dei nodi.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   XmlTextReader^ reader = nullptr;
   String^ filename = "items.xml";
   try
   {
      
      // Load the reader with the data file and ignore all white space nodes.         
      reader = gcnew XmlTextReader( filename );
      reader->WhitespaceHandling = WhitespaceHandling::None;
      
      // 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;
         }
      }
   }
   finally
   {
      if ( reader != nullptr )
            reader->Close();
   }

}
using System;
using System.IO;
using System.Xml;

public class Sample {

  private const String filename = "items.xml";

  public static void Main() {

     XmlTextReader reader = null;

     try {

        // Load the reader with the data file and ignore all white space nodes.
        reader = new XmlTextReader(filename);
        reader.WhitespaceHandling = WhitespaceHandling.None;

        // 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;
           }
        }
     }

     finally {
        if (reader!=null)
          reader.Close();
     }
  }
} // End class
Option Strict
Option Explicit

Imports System.IO
Imports System.Xml

'Reads an XML document
Public Class Sample
    Private Const filename As String = "items.xml"
    
    Public Shared Sub Main()
        Dim reader As XmlTextReader = Nothing
        
        Try
            ' Load the reader with the data file and ignore all white space nodes.         
            reader = New XmlTextReader(filename)
            reader.WhitespaceHandling = WhitespaceHandling.None
            
            ' Parse the file and display each of the nodes.
            While reader.Read()
                Select Case reader.NodeType
                    Case XmlNodeType.Element
                        Console.Write("<{0}>", reader.Name)
                    Case XmlNodeType.Text
                        Console.Write(reader.Value)
                    Case XmlNodeType.CDATA
                        Console.Write("<![CDATA[{0}]]>", reader.Value)
                    Case XmlNodeType.ProcessingInstruction
                        Console.Write("<?{0} {1}?>", reader.Name, reader.Value)
                    Case XmlNodeType.Comment
                        Console.Write("<!--{0}-->", reader.Value)
                    Case XmlNodeType.XmlDeclaration
                        Console.Write("<?xml version='1.0'?>")
                    Case XmlNodeType.Document
                    Case XmlNodeType.DocumentType
                        Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value)
                    Case XmlNodeType.EntityReference
                        Console.Write(reader.Name)
                    Case XmlNodeType.EndElement
                        Console.Write("</{0}>", reader.Name)
                End Select
            End While
        
        Finally
            If Not (reader Is Nothing) Then
                reader.Close()
            End If
        End Try
    End Sub
End Class

Nell'esempio viene usato il file , items.xml, come input.


<?xml version="1.0"?>
<!-- This is a sample XML document -->
<!DOCTYPE Items [<!ENTITY number "123">]>
<Items>
  <Item>Test with an entity: &number;</Item>
  <Item>test with a child element <more/> stuff</Item>
  <Item>test with a CDATA section <![CDATA[<456>]]> def</Item>
  <Item>Test with an char entity: A</Item>
  <!-- Fourteen chars in this element.-->
  <Item>1234567890ABCD</Item>
</Items>

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Se il file si trova in una risorsa che richiede le credenziali di accesso, usare la XmlResolver proprietà per specificare le credenziali necessarie.

Nota

Nella versione 1.1 di .NET Framework, il codice parzialmente attendibile non può impostare la XmlResolver proprietà . La soluzione alternativa consiste nel creare un XmlUrlResolver oggetto con le credenziali necessarie, passare l'URI al XmlUrlResolver.GetEntity metodo e quindi costruire XmlTextReader usando l'oggetto risultante Stream . La soluzione alternativa è descritta nel codice C# seguente.

// Create a resolver with the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
NetworkCredential nc = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword, SecurelyStoredDomain);
resolver.Credentials = nc;
// Get a Stream object containing the XML file.
Uri myUri = new Uri ("http://myServer/data/books.xml");
Stream s=(Stream)resolver.GetEntity(myUri, null, typeof(Stream));
// Construct a reader using the Stream object.
XmlTextReader reader = new XmlTextReader(s);

Vedi anche

Si applica a

XmlTextReader(TextReader)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con l'oggetto TextReader specificato.

public:
 XmlTextReader(System::IO::TextReader ^ input);
public XmlTextReader (System.IO.TextReader input);
new System.Xml.XmlTextReader : System.IO.TextReader -> System.Xml.XmlTextReader
Public Sub New (input As TextReader)

Parametri

input
TextReader

Oggetto TextReader che contiene i dati XML da leggere.

Esempio

Nell'esempio seguente viene caricata una stringa XML nell'oggetto XmlTextReader utilizzando la StringReader classe .

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   String^ xmlData = "<book>\r\n       <title>Oberon's Legacy</title>\r\n       <price>5.95</price>\r\n      </book>";
   
   // Create the reader.
   XmlTextReader^ reader = gcnew XmlTextReader( gcnew StringReader( xmlData ) );
   reader->WhitespaceHandling = WhitespaceHandling::None;
   
   // Display each element node.
   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::EndElement:
            Console::Write( "</{0}>", reader->Name );
            break;
      }
   }

   
   // Close the reader.
   reader->Close();
}
using System;
using System.IO;
using System.Xml;

public class Sample {

  public static void Main() {

    string xmlData =
    @"<book>
       <title>Oberon's Legacy</title>
       <price>5.95</price>
      </book>";

    // Create the reader.
    XmlTextReader reader = new XmlTextReader(new StringReader(xmlData));
    reader.WhitespaceHandling = WhitespaceHandling.None;

    // Display each element node.
    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.EndElement:
           Console.Write("</{0}>", reader.Name);
           break;
      }
    }

    // Close the reader.
    reader.Close();
  }
} // End class
Imports System.IO
Imports System.Xml

public class Sample 

  public shared sub Main()

    Dim xmlData as string 
    xmlData = "<book>" & _
              "  <title>Oberon's Legacy</title>" & _
              "  <price>5.95</price>" & _
              "</book>"

    ' Create the reader.
    Dim reader as XmlTextReader = new XmlTextReader(new StringReader(xmlData))
    reader.WhitespaceHandling = WhitespaceHandling.None

    ' Display each element node.
    while reader.Read()
       select case reader.NodeType
         case XmlNodeType.Element
           Console.Write("<{0}>", reader.Name)
         case XmlNodeType.Text
           Console.Write(reader.Value)
         case XmlNodeType.EndElement
           Console.Write("</{0}>", reader.Name)
       end select       
    end while           

    ' Close the reader.
    reader.Close()       
  end sub
end class

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Si presuppone che il costruttore TextReader sia già impostato sulla codifica corretta. Viene usato dai client che hanno già letto alcuni elementi dal flusso in uno scenario MIME in più parti.

Vedi anche

Si applica a

XmlTextReader(Stream)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con il flusso specificato.

public:
 XmlTextReader(System::IO::Stream ^ input);
public XmlTextReader (System.IO.Stream input);
new System.Xml.XmlTextReader : System.IO.Stream -> System.Xml.XmlTextReader
Public Sub New (input As Stream)

Parametri

input
Stream

Flusso contenente i dati XML da leggere.

Eccezioni

input è null.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Decodifica XmlTextReader il flusso usando System.Text.Encoding.

Vedi anche

Si applica a

XmlTextReader(TextReader, XmlNameTable)

Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs
Origine:
XmlTextReader.cs

Inizializza una nuova istanza della classe XmlTextReader con gli oggetti TextReader e XmlNameTable specificati.

public:
 XmlTextReader(System::IO::TextReader ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (System.IO.TextReader input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.IO.TextReader * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (input As TextReader, nt As XmlNameTable)

Parametri

input
TextReader

Oggetto TextReader che contiene i dati XML da leggere.

nt
XmlNameTable

Oggetto XmlNameTable da usare.

Eccezioni

Il valore nt è null.

Commenti

Nota

A partire da .NET Framework 2.0, è consigliabile creare XmlReader istanze usando il XmlReader.Create metodo per sfruttare le nuove funzionalità.

Si presuppone che il costruttore TextReader sia già impostato sulla codifica corretta. Viene usato dai client che hanno già letto alcuni elementi dal flusso in uno scenario MIME in più parti.

Vedi anche

Si applica a