XmlTextReader.ResetState Yöntem

Tanım

Okuyucunun durumunu ReadState.Initial olarak sıfırlar.

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

Özel durumlar

Okuyucu bir ResetStatekullanılarak oluşturulduysa çağırmaXmlParserContext.

Tek bir akıştaki belgeler aynı kodlamayı paylaşmaz.

Örnekler

Aşağıdaki örnek, tek bir akışta iki XML belgesini ayrıştırmaktadır.

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

Açıklamalar

Note

XmlReader öneririz. Yeni işlevlerden yararlanmak için XmlReader.Create yöntemini kullanarak örnekler oluşturmanız.

Bu yöntem, tek bir akışta birden çok XML belgesini ayrıştırmanızı sağlar. Xml belgesinin sonuna ulaştığınızda, sonraki XML belgesine hazırlanırken okuyucunun durumunu sıfırlamak için öğesini çağırabilirsiniz ResetState .

Important

Akıştaki belgelerin aynı kodlamayı paylaşması gerekir. Böyle bir durum söz konusu değilse, çağrıldığında ResetState oluşturulur XmlException . (Bu, .NET Framework sürüm 1.1 ve önceki sürümlerdeki bir davranış değişikliğidir).

Aşağıdaki özellikler tarafından ResetStateetkilenmez.

Şunlara uygulanır

Ayrıca bkz.