Metodo XmlReader.ReadSubtree (System.Xml)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Metodo XmlReader.ReadSubtree

Nota: questo metodo è stato introdotto con .NET Framework versione 2.0.

Restituisce una nuova istanza di XmlReader che è possibile utilizzare per leggere il nodo corrente e tutte le relative derivazioni.

Spazio dei nomi: System.Xml
Assembly: System.Xml (in system.xml.dll)

Sintassi

Visual Basic - (Dichiarazione)
Public Overridable Function ReadSubtree As XmlReader
Visual Basic (Utilizzo)
Dim instance As XmlReader
Dim returnValue As XmlReader

returnValue = instance.ReadSubtree
C#
public virtual XmlReader ReadSubtree ()
C++
public:
virtual XmlReader^ ReadSubtree ()
J#
public XmlReader ReadSubtree ()
JScript
public function ReadSubtree () : XmlReader

Valore restituito

Una nuova istanza di XmlReader impostata su ReadState.Initial. Una chiamata al metodo Read posiziona il nuovo XmlReader in corrispondenza del nodo che era il nodo corrente prima della chiamata al metodo ReadSubtree.
Eccezioni

Tipo di eccezione Condizione

InvalidOperationException

Quando viene chiamato questo metodo, XmlReader non viene posizionato in corrispondenza di un elemento.

Note

ReadSubtree può essere chiamato solo in corrispondenza di nodi elemento. Al termine della lettura dell'intera sottostruttura, le chiamate al metodo Read restituiscono false. Una volta chiuso il nuovo metodo XmlReader, il metodo XmlReader originale viene posizionato sul nodo EndElement della sottostruttura. In questo modo, se viene chiamato il metodo ReadSubtree sul tag iniziale dell'elemento libro, una volta letta la sottostruttura e una volta chiuso il nuovo XmlReader, il visualizzatore XmlReader originale viene posizionato sul tag finale dell'elemento libro.

È consigliabile non eseguire alcuna operazione nel XmlReader iniziale fino a quando il nuovo XmlReader non è stato chiuso. Questa azione non è supportata e può produrre comportamenti inattesi.

NotaNota

Il metodo ReadSubtree non è destinato alla creazione di una copia dei dati XML che è possibile utilizzare in modo indipendente. Può invece essere utilizzato per creare un limite per un elemento XML. Questa funzionalità è utile per passare dati a un altro componente per l'elaborazione e limitare la quantità di dati a cui il componente può accedere. Quando si passa un oggetto XmlReader restituito dal metodo ReadSubtree a un'altra applicazione, l'applicazione può accedere solo all'elemento XML e non all'intero documento XML.

Esempio

Nell'esempio riportato di seguito viene illustrato come utilizzare il metodo ReadSubtree.

Visual Basic
Dim settings As New XmlReaderSettings()
settings.IgnoreWhitespace = True
Using reader As XmlReader = XmlReader.Create("books.xml", settings)

  ' Position the reader on the second book node.
  reader.ReadToFollowing("book")
  reader.Skip()
                
  ' Create another reader that contains just the second book node.
  Dim inner As XmlReader = reader.ReadSubtree()
            
  ' Do additional processing on the inner reader. After you 
  ' are done, you can call Close on the inner reader and 
  ' continue processing using the original reader.

End Using

C#
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
using (XmlReader reader = XmlReader.Create("books.xml", settings)) {

  // Position the reader on the second book node
  reader.ReadToFollowing("book");
  reader.Skip();
       
  // Create another reader that contains just the second book node.
  XmlReader inner = reader.ReadSubtree();

  // Do additional processing on the inner reader. After you 
  // are done, you can call Close on the inner reader and 
  // continue processing using the original reader.

}

Piattaforme

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

Informazioni sulla versione

.NET Framework

Supportato in: 2.0

.NET Compact Framework

Supportato in: 2.0
Vedere anche