XmlTextReader.ResetState Metoda

Definice

Obnoví stav čtenáře na ReadState.Initial.

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

Výjimky

VoláníResetState, pokud byla čtečka vytvořena pomocí .XmlParserContext

Dokumenty v jednom datovém proudu nesdílely stejné kódování.

Příklady

Následující příklad analyzuje dva dokumenty XML v jednom datovém proudu.

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

Poznámky

Note

Doporučujeme vytvářet XmlReader instance pomocí XmlReader.Create metody, abyste mohli využívat nové funkce.

Tato metoda umožňuje parsovat více dokumentů XML v jednom datovém proudu. Když se dostanete na konec dokumentu XML, můžete volat ResetState resetování stavu čtečky při přípravě na další dokument XML.

Important

Dokumenty ve streamu musí sdílet stejné kódování. Pokud tomu tak není, při ResetState vyvolání je vyvolána XmlException . (Jedná se o změnu chování z rozhraní .NET Framework verze 1.1 a starší).

Následující vlastnosti nejsou ovlivněny ResetState.

Platí pro

Viz také