XmlTextReader.ResetState Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.