XmlTextReader.ResetState Methode

Definition

Setzt den Status des Readers auf ReadState.Initial zurück.

public:
 void ResetState();
public void ResetState();
member this.ResetState : unit -> unit
Public Sub ResetState ()

Ausnahmen

Wird ResetState aufgerufen, wenn der Leser mithilfe einer XmlParserContext.

Dokumente in einem einzelnen Datenstrom teilen nicht dieselbe Codierung.

Beispiele

Im folgenden Beispiel werden zwei XML-Dokumente in einem einzelnen Datenstrom analysiert.

using System;
using System.IO;
using System.Text;
using System.Xml;

public class Sample
{
  public static void Main(){

     Encoding enc = new UTF8Encoding();
     byte[] utf8Buffer = enc.GetBytes("<root> 12345 </root>");

     enc = new UnicodeEncoding();
     byte[] unicodeBuffer = enc.GetBytes("<?xml version='1.0' ?><unicode> root </unicode>");

     MemoryStream memStrm = new MemoryStream();
     memStrm.Write(unicodeBuffer, 0, unicodeBuffer.Length);
     memStrm.Write(utf8Buffer, 0, utf8Buffer.Length);
     memStrm.Position = 0;

     XmlTextReader reader = new XmlTextReader(memStrm);

     while(reader.Read()) {
        Console.WriteLine("NodeType: {0}", reader.NodeType);
        if (XmlNodeType.EndElement == reader.NodeType && "root" == reader.Name) {
          break;
        }

        if (XmlNodeType.EndElement == reader.NodeType) {
          reader.ResetState();
       }
    }
  }
}
Imports System.IO
Imports System.Text
Imports System.Xml

public class Sample

  public shared sub Main()

     Dim enc as Encoding = new UTF8Encoding()
     Dim utf8Buffer as byte() = enc.GetBytes("<root> 12345 </root>") 

     enc = new UnicodeEncoding()
     Dim unicodeBuffer as byte() = enc.GetBytes("<?xml version='1.0' ?><unicode> root </unicode>")

     Dim memSreaderm as MemoryStream = new MemoryStream()
     memSreaderm.Write(unicodeBuffer, 0, unicodeBuffer.Length)
     memSreaderm.Write(utf8Buffer, 0, utf8Buffer.Length)
     memSreaderm.Position = 0

     Dim reader as XmlTextReader = new XmlTextReader(memSreaderm)

     while(reader.Read()) 
        Console.WriteLine("NodeType: {0}", reader.NodeType)
        if (XmlNodeType.EndElement = reader.NodeType And "root" = reader.Name) 
         exit while
        end if
        
        if (XmlNodeType.EndElement = reader.NodeType) 
          reader.ResetState()
       end if
    end while

  end sub
end class

Hinweise

Note

Es wird empfohlen, XmlReader-Instanzen mithilfe der XmlReader.Create-Methode zu erstellen, um neue Funktionen zu nutzen.

Mit dieser Methode können Sie mehrere XML-Dokumente in einem einzigen Datenstrom analysieren. Wenn Sie das Ende eines XML-Dokuments erreichen, können Sie den ResetState Status des Readers in Vorbereitung auf das nächste XML-Dokument zurücksetzen.

Important

Die Dokumente im Datenstrom müssen dieselbe Codierung aufweisen. Wenn dies nicht der Fall ist, wird beim ResetState Aufruf eines Wurfs eingeworfen XmlException . (Dies ist eine Änderung des Verhaltens von .NET Framework Version 1.1 und früher).

Die folgenden Eigenschaften sind nicht betroffen von ResetState.

Gilt für:

Weitere Informationen