Condividi tramite


XmlReader Classe

Definizione

Rappresenta un lettore che fornisce accesso veloce, non in cache e di tipo forward-only ai dati XML.

public ref class XmlReader abstract : IDisposable
public ref class XmlReader abstract
public abstract class XmlReader : IDisposable
public abstract class XmlReader
type XmlReader = class
    interface IDisposable
type XmlReader = class
Public MustInherit Class XmlReader
Implements IDisposable
Public MustInherit Class XmlReader
Ereditarietà
XmlReader
Derivato
Implementazioni

Esempio

Il codice di esempio seguente illustra come usare l'API asincrona per analizzare XML.

async Task TestReader(System.IO.Stream stream)
{
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.Async = true;

    using (XmlReader reader = XmlReader.Create(stream, settings))
    {
        while (await reader.ReadAsync())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    Console.WriteLine("Start Element {0}", reader.Name);
                    break;
                case XmlNodeType.Text:
                    Console.WriteLine("Text Node: {0}",
                             await reader.GetValueAsync());
                    break;
                case XmlNodeType.EndElement:
                    Console.WriteLine("End Element {0}", reader.Name);
                    break;
                default:
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value);
                    break;
            }
        }
    }
}
Public Async Function TestReader(stream As System.IO.Stream) As Task
    Dim settings As New XmlReaderSettings()
    settings.Async = True

    Using reader As XmlReader = XmlReader.Create(stream, settings)
        While (Await reader.ReadAsync())
            Select Case (reader.NodeType)
                Case XmlNodeType.Element
                    Console.WriteLine("Start Element {0}", reader.Name)
                Case XmlNodeType.Text
                    Console.WriteLine("Text Node: {0}",
                             Await reader.GetValueAsync())
                Case XmlNodeType.EndElement
                    Console.WriteLine("End Element {0}", reader.Name)
                Case Else
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value)
            End Select
        End While
    End Using
End Function

Commenti

Per altre informazioni su questa API, vedere Osservazioni api supplementari per XmlReader.

Costruttori

XmlReader()

Inizializza una nuova istanza della classe XmlReader.

Proprietà

AttributeCount

Quando ne viene eseguito l'override in una classe derivata, ottiene il numero di attributi sul nodo corrente.

BaseURI

Quando sottoposto a override in una classe derivata, ottiene l'URI di base del nodo corrente.

CanReadBinaryContent

Ottiene un valore che indica se XmlReader implementa metodi di lettura del contenuto binario.

CanReadValueChunk

Ottiene un valore che indica se XmlReader implementa il metodo ReadValueChunk(Char[], Int32, Int32).

CanResolveEntity

Ottiene un valore che indica se il lettore può analizzare e risolvere le entità.

Depth

Quando sottoposto a override in una classe derivata, ottiene la profondità del nodo corrente nel documento XML.

EOF

Quando ne viene eseguito l'override in una classe derivata, ottiene un valore che indica se il lettore è posizionato alla fine del flusso.

HasAttributes

Ottiene un valore che indica se il nodo corrente dispone di attributi.

HasValue

Quando ne viene eseguito l'override in una classe derivata, ottiene un valore che indica se il nodo corrente può avere Value.

IsDefault

Quando ne viene eseguito l'override in una classe derivata, ottiene un valore che indica se il nodo corrente è un attributo generato dal valore predefinito configurato nella definizione DTD o nello schema.

IsEmptyElement

In caso di override in una classe derivata, ottiene un valore che indica se il nodo corrente è un elemento vuoto , ad esempio <MyElement/>.

Item[Int32]

Quando ne viene eseguito l'override in una classe derivata, ottiene il valore dell'attributo con l'indice specificato.

Item[String, String]

Quando sottoposto a override in una classe derivata, ottiene il valore dell'attributo con le proprietà LocalName e NamespaceURI specificate.

Item[String]

Quando sottoposto a override in una classe derivata, ottiene il valore dell'attributo con la proprietà Name specificata.

LocalName

Quando sottoposto a override in una classe derivata, ottiene il nome locale del nodo corrente.

Name

Quando ne viene eseguito l'override in una classe derivata, ottiene il nome completo del nodo corrente.

NamespaceURI

Quando sottoposto a override in una classe derivata, ottiene l'URI dello spazio dei nomi, definito nella specifica W3C Namespace, del nodo in corrispondenza del quale è posizionato il lettore.

NameTable

Quando sottoposto a override in una classe derivata, ottiene l'oggetto XmlNameTable associato a questa implementazione.

NodeType

Quando ne viene eseguito l'override in una classe derivata, ottiene il tipo del nodo corrente.

Prefix

Quando sottoposto a override in una classe derivata, ottiene il prefisso dello spazio dei nomi associato al nodo corrente.

QuoteChar

Quando sottoposto a override in una classe derivata, ottiene il carattere punto interrogativo (?) utilizzato per delimitare il valore di un nodo attributo.

ReadState

Quando ne viene eseguito l'override in una classe derivata, ottiene lo stato del lettore.

SchemaInfo

Ottiene le informazioni sullo schema assegnate al nodo corrente in seguito alla convalida dello schema.

Settings

Ottiene l'oggetto XmlReaderSettings usato per creare questa istanza di XmlReader.

Value

Quando ne viene eseguito l'override in una classe derivata, ottiene il valore del testo del nodo corrente.

ValueType

Ottiene il tipo CLR (Common Language Runtime) relativo al nodo corrente.

XmlLang

Quando ne viene eseguito l'override in una classe derivata, ottiene l'ambito xml:lang corrente.

XmlSpace

Quando ne viene eseguito l'override in una classe derivata, ottiene l'ambito xml:space corrente.

Metodi

Close()

Quando ne viene eseguito l'override in una classe derivata, sostituisce ReadState con Closed.

Create(Stream)

Crea una nuova istanza di XmlReader con il flusso specificato e le impostazioni predefinite.

Create(Stream, XmlReaderSettings)

Crea una nuova istanza di XmlReader con il flusso e le impostazioni specificati.

Create(Stream, XmlReaderSettings, String)

Crea una nuova istanza di XmlReader con il flusso, l'URI di base e le impostazioni specificati.

Create(Stream, XmlReaderSettings, XmlParserContext)

Crea una nuova istanza di XmlReader con il flusso, le impostazioni e le informazioni di contesto specificati per l'analisi.

Create(String)

Crea una nuova istanza di XmlReader con l'URI specificato.

Create(String, XmlReaderSettings)

Crea una nuova istanza di XmlReader con l'URI e le impostazioni specificati.

Create(String, XmlReaderSettings, XmlParserContext)

Crea una nuova istanza di XmlReader con l'URI, le impostazioni e le informazioni di contesto specificati per l'analisi.

Create(TextReader)

Crea una nuova istanza di XmlReader con il lettore di testo specificato.

Create(TextReader, XmlReaderSettings)

Crea una nuova istanza di XmlReader con il lettore di testo e le impostazioni specificati.

Create(TextReader, XmlReaderSettings, String)

Crea una nuova istanza di XmlReader con il lettore di testo, le impostazioni e l'URI di base specificati.

Create(TextReader, XmlReaderSettings, XmlParserContext)

Crea una nuova istanza di XmlReader con il lettore di testo, le impostazioni e le informazioni di contesto specificati per l'analisi.

Create(XmlReader, XmlReaderSettings)

Crea una nuova istanza di XmlReader con il lettore XML e le impostazioni specificate.

Dispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe XmlReader.

Dispose(Boolean)

Rilascia le risorse non gestite usate da XmlReader e, facoltativamente, le risorse gestite.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetAttribute(Int32)

Quando ne viene eseguito l'override in una classe derivata, ottiene il valore dell'attributo con l'indice specificato.

GetAttribute(String)

Quando sottoposto a override in una classe derivata, ottiene il valore dell'attributo con la proprietà Name specificata.

GetAttribute(String, String)

Quando sottoposto a override in una classe derivata, ottiene il valore dell'attributo con le proprietà LocalName e NamespaceURI specificate.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetValueAsync()

Ottiene in modo asincrono il valore del nodo corrente.

IsName(String)

Restituisce un valore che indica se l'argomento della stringa è un nome XML valido.

IsNameToken(String)

Restituisce un valore che indica se l'argomento della stringa è un token di un nome XML valido o meno.

IsStartElement()

Chiama MoveToContent() e verifica se il nodo di contenuto corrente è un tag di inizio o un tag di elemento vuoto.

IsStartElement(String)

Chiama MoveToContent() e verifica se il nodo corrente è un tag di inizio o un tag di elemento vuoto e se la proprietà Name dell'elemento trovato corrisponde all'argomento specificato.

IsStartElement(String, String)

Chiama MoveToContent() e verifica se il nodo di contenuto è un tag di inizio o un tag di elemento vuoto e se le proprietà LocalName e NamespaceURI dell'elemento trovato corrispondono alle stringhe specificate.

LookupNamespace(String)

Quando sottoposto a override in una classe derivata, risolve il prefisso di uno spazio dei nomi nell'ambito dell'elemento corrente.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MoveToAttribute(Int32)

Quando ne viene eseguito l'override in una classe derivata, passa all'attributo con l'indice specificato.

MoveToAttribute(String)

Quando ne viene eseguito l'override in una classe derivata, passa all'attributo con la proprietà Name specificata.

MoveToAttribute(String, String)

Quando ne viene eseguito l'override in una classe derivata, passa all'attributo con le proprietà LocalName e NamespaceURI specificate.

MoveToContent()

Verifica se il nodo corrente rappresenta un nodo di contenuto, ovvero un nodo testo non spazio vuoto, CDATA, Element, EndElement, EntityReference o EndEntity. Se il nodo non è un nodo di contenuto, il lettore passa al nodo di contenuto successivo oppure alla fine del file. Vengono inoltre ignorati i seguenti tipi di nodo: ProcessingInstruction, DocumentType, Comment, Whitespace o SignificantWhitespace.

MoveToContentAsync()

Verifica in modo asincrono se il nodo corrente è un nodo di contenuto. Se il nodo non è un nodo di contenuto, il lettore passa al nodo di contenuto successivo oppure alla fine del file.

MoveToElement()

Quando ne viene eseguito l'override in una classe derivata, passa all'elemento che contiene il nodo attributo corrente.

MoveToFirstAttribute()

Quando ne viene eseguito l'override in una classe derivata, passa al primo attributo.

MoveToNextAttribute()

Quando ne viene eseguito l'override in una classe derivata, passa all'attributo successivo.

Read()

Quando ne viene eseguito l'override in una classe derivata, visualizza il nodo successivo nel flusso.

ReadAsync()

Legge in modo asincrono il nodo successivo del flusso.

ReadAttributeValue()

Quando ne viene eseguito l'override in una classe derivata, analizza il valore dell'attributo incluso in uno o più nodi Text, EntityReference o EndEntity.

ReadContentAs(Type, IXmlNamespaceResolver)

Legge il contenuto come oggetto del tipo specificato.

ReadContentAsAsync(Type, IXmlNamespaceResolver)

Legge in modo asincrono il contenuto come oggetto del tipo specificato.

ReadContentAsBase64(Byte[], Int32, Int32)

Legge il contenuto e restituisce byte binari decodificati Base64.

ReadContentAsBase64Async(Byte[], Int32, Int32)

Legge in modo asincrono il contenuto e restituisce byte binari decodificati Base64.

ReadContentAsBinHex(Byte[], Int32, Int32)

Legge il contenuto e restituisce i byte binari decodificati BinHex.

ReadContentAsBinHexAsync(Byte[], Int32, Int32)

Legge in modo asincrono il contenuto e restituisce byte binari decodificati BinHex.

ReadContentAsBoolean()

Legge il contenuto di testo nella posizione corrente come Boolean.

ReadContentAsDateTime()

Legge il contenuto di testo nella posizione corrente come oggetto DateTime.

ReadContentAsDateTimeOffset()

Legge il contenuto di testo nella posizione corrente come oggetto DateTimeOffset.

ReadContentAsDecimal()

Legge il contenuto di testo nella posizione corrente come oggetto Decimal.

ReadContentAsDouble()

Legge il contenuto di testo nella posizione corrente come numero a virgola mobile e precisione doppia.

ReadContentAsFloat()

Legge il contenuto di testo nella posizione corrente come numero a virgola mobile e precisione singola.

ReadContentAsInt()

Legge il contenuto di testo nella posizione corrente come valore intero con segno a 32 bit.

ReadContentAsLong()

Legge il contenuto di testo nella posizione corrente come valore intero con segno a 64 bit.

ReadContentAsObject()

Legge il contenuto di testo nella posizione corrente come Object.

ReadContentAsObjectAsync()

Legge in modo asincrono il contenuto di testo nella posizione corrente come oggetto Object.

ReadContentAsString()

Legge il contenuto di testo nella posizione corrente come oggetto String.

ReadContentAsStringAsync()

Legge in modo asincrono il contenuto di testo nella posizione corrente come oggetto String.

ReadElementContentAs(Type, IXmlNamespaceResolver)

Legge il contenuto dell'elemento come il tipo richiesto.

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge il contenuto dell'elemento come il tipo richiesto.

ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

Legge in modo asincrono il contenuto dell'elemento come il tipo richiesto.

ReadElementContentAsBase64(Byte[], Int32, Int32)

Legge l'elemento e decodifica il contenuto Base64.

ReadElementContentAsBase64Async(Byte[], Int32, Int32)

Legge in modo asincrono l'elemento e decodifica il contenuto Base64.

ReadElementContentAsBinHex(Byte[], Int32, Int32)

Legge l'elemento e decodifica il contenuto BinHex.

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

Legge in modo asincrono l'elemento e decodifica il contenuto BinHex.

ReadElementContentAsBoolean()

Legge l'elemento corrente e restituisce il contenuto come oggetto Boolean.

ReadElementContentAsBoolean(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come oggetto Boolean.

ReadElementContentAsDateTime()

Legge l'elemento corrente e restituisce il contenuto come oggetto DateTime.

ReadElementContentAsDateTime(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come oggetto DateTime.

ReadElementContentAsDecimal()

Legge l'elemento corrente e restituisce il contenuto come oggetto Decimal.

ReadElementContentAsDecimal(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come oggetto Decimal.

ReadElementContentAsDouble()

Legge l'elemento corrente e restituisce il contenuto come numero a virgola mobile e precisione doppia.

ReadElementContentAsDouble(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come numero a virgola mobile e precisione doppia.

ReadElementContentAsFloat()

Legge l'elemento corrente e restituisce il contenuto come numero a virgola mobile e precisione singola.

ReadElementContentAsFloat(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come numero a virgola mobile e precisione singola.

ReadElementContentAsInt()

Legge l'elemento corrente e restituisce il contenuto come valore intero con segno a 32 bit.

ReadElementContentAsInt(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come valore intero con segno a 32 bit.

ReadElementContentAsLong()

Legge l'elemento corrente e restituisce il contenuto come valore intero con segno a 64 bit.

ReadElementContentAsLong(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come valore intero con segno a 64 bit.

ReadElementContentAsObject()

Legge l'elemento corrente e restituisce il contenuto come Object.

ReadElementContentAsObject(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come oggetto Object.

ReadElementContentAsObjectAsync()

Legge in modo asincrono l'elemento corrente e restituisce il contenuto come Object.

ReadElementContentAsString()

Legge l'elemento corrente e restituisce il contenuto come oggetto String.

ReadElementContentAsString(String, String)

Verifica che il nome locale e l'URI dello spazio dei nomi specificati corrispondano a quelli dell'elemento corrente, quindi legge l'elemento e restituisce il contenuto come oggetto String.

ReadElementContentAsStringAsync()

Legge in modo asincrono l'elemento corrente e restituisce il contenuto come oggetto String.

ReadElementString()

Legge un elemento di solo testo. È tuttavia consigliabile usare il metodo ReadElementContentAsString(), perché fornisce un modo più diretto per gestire questa operazione.

ReadElementString(String)

Verifica che la proprietà Name dell'elemento trovato corrisponda alla stringa specificata prima di leggere un elemento di solo testo. È tuttavia consigliabile usare il metodo ReadElementContentAsString(), perché fornisce un modo più diretto per gestire questa operazione.

ReadElementString(String, String)

Verifica che le proprietà LocalName e NamespaceURI dell'elemento trovato corrispondano alle stringhe specificate prima di leggere un elemento di solo testo. È tuttavia consigliabile usare il metodo ReadElementContentAsString(String, String), perché fornisce un modo più diretto per gestire questa operazione.

ReadEndElement()

Verifica che il nodo di contenuto corrente sia un tag di fine e sposta il lettore al nodo successivo.

ReadInnerXml()

Quando sottoposto a override in una classe derivata, legge tutto il contenuto come stringa, incluso il markup.

ReadInnerXmlAsync()

In modo asincrono legge tutti i contenuti, incluso il markup, come stringa.

ReadOuterXml()

Quando ne viene eseguito l'override in una classe derivata, legge il contenuto, incluso il markup, che rappresenta questo nodo e tutti i relativi nodi figlio.

ReadOuterXmlAsync()

In modo asincrono legge i contenuti che rappresentano questo nodo, incluso il markup, e i relativi elementi figlio.

ReadStartElement()

Verifica che il nodo corrente sia un elemento e fa avanzare il lettore al nodo successivo.

ReadStartElement(String)

Verifica che il nodo di contenuto corrente sia un elemento con la proprietà Name specificata e passa il lettore al nodo successivo.

ReadStartElement(String, String)

Verifica che il nodo di contenuto corrente sia un elemento con le proprietà LocalName e NamespaceURI specificate e passa il lettore al nodo successivo.

ReadString()

Quando sottoposto a override in una classe derivata, legge il contenuto di un nodo elemento o testo come se si trattasse di una stringa. È tuttavia consigliabile usare il metodo ReadElementContentAsString, perché fornisce un modo più diretto per gestire questa operazione.

ReadSubtree()

Restituisce una nuova istanza di XmlReader che è possibile utilizzare per leggere il nodo corrente e tutti i relativi discendenti.

ReadToDescendant(String)

Sposta l'oggetto XmlReader al successivo elemento discendente con il nome completo specificato.

ReadToDescendant(String, String)

Sposta l'oggetto XmlReader al successivo elemento discendente con il nome locale e l'URI dello spazio dei nomi specificati.

ReadToFollowing(String)

Legge fino a trovare un elemento con il nome completo specificato.

ReadToFollowing(String, String)

Legge fino a trovare un elemento con il nome locale e l'URI dello spazio dei nomi specificati.

ReadToNextSibling(String)

Sposta l'oggetto XmlReader al successivo elemento di pari livello con il nome completo specificato.

ReadToNextSibling(String, String)

Sposta l'oggetto XmlReader al successivo elemento di pari livello con il nome locale e l'URI dello spazio dei nomi specificati.

ReadValueChunk(Char[], Int32, Int32)

Legge flussi di testo di grandi dimensioni incorporati in un documento XML.

ReadValueChunkAsync(Char[], Int32, Int32)

Legge in modo asincrono flussi di testo di grandi dimensioni incorporati in un documento XML.

ResolveEntity()

Quando ne viene eseguito l'override in una classe derivata, risolve il riferimento a entità per i nodi EntityReference.

Skip()

Ignora gli elementi figlio del nodo corrente.

SkipAsync()

Ignora in modo asincrono gli elementi figlio del nodo corrente.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Per una descrizione di questo membro, vedere Dispose().

Si applica a

Vedi anche