XmlTextReader.ResetState Metod

Definition

Återställer läsarens tillstånd till ReadState.Initial.

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

Undantag

Anropar ResetState om läsaren har konstruerats med hjälp av en XmlParserContext.

Dokument i en enda dataström delar inte samma kodning.

Exempel

I följande exempel parsas två XML-dokument i en enda dataström.

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

Kommentarer

Note

Vi rekommenderar att du skapar XmlReader instanser genom att använda XmlReader.Create metoden för att dra nytta av nya funktioner.

Med den här metoden kan du parsa flera XML-dokument i en enda dataström. När du når slutet av ett XML-dokument kan du anropa ResetState för att återställa läsarens tillstånd inför nästa XML-dokument.

Important

Dokumenten i dataströmmen måste dela samma kodning. Om detta inte är fallet, när ResetState kallas en XmlException genereras. (Detta är en ändring i beteendet från .NET Framework version 1.1 och tidigare).

Följande egenskaper påverkas inte av ResetState.

Gäller för

Se även