XmlTextReader.ResetState Methode

Definitie

Hiermee stelt u de status van de lezer opnieuw in op ReadState.Initial.

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

Uitzonderingen

Aanroepen ResetState als de lezer is samengesteld met behulp van een XmlParserContext.

Documenten in één stream delen niet dezelfde codering.

Voorbeelden

In het volgende voorbeeld worden twee XML-documenten in één stream geparseerd.

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

Opmerkingen

Note

Wij raden aan dat u XmlReader instanties maakt met behulp van de XmlReader.Create methode om te profiteren van nieuwe functionaliteiten.

Met deze methode kunt u meerdere XML-documenten in één stream parseren. Wanneer u het einde van een XML-document bereikt, kunt ResetState u de status van de lezer opnieuw instellen ter voorbereiding op het volgende XML-document.

Important

De documenten in de stream moeten dezelfde codering delen. Als dit niet het geval is, wordt er ResetState een XmlException gegooid. (Dit is een wijziging in het gedrag van .NET Framework versie 1.1 en eerder).

De volgende eigenschappen worden niet beïnvloed door ResetState.

Van toepassing op

Zie ook