System.Xml.XmlTextReader.ResetState 方法

方法描述

将读取器的状态重置为 ReadState.Initial。

语法定义(C# System.Xml.XmlTextReader.ResetState 方法 的用法)

public void ResetState()

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
返回值 void

提示和注释

注意

在 .NET Framework 2.0 版 版本中,推荐的做法是使用 XmlReader.Create 方法创建 XmlReader 实例。 这使您可以充分利用此版本中引入的新功能。 有关更多信息,请参见 创建 XML 读取器。

此方法使您可以在单个流中分析多个 XML 文档。 当到达 XML 文档的结尾时,您可以调用 ResetState 来重置读取器的状态以准备分析下一个 XML 文档。

重要事项

该流中的文档必须共享同一编码。 如果不是这样,当调用 ResetState 时,则会引发 XmlException。 (这是对来自 .NET Framework 1.1 版及更早版本的行为所做的更改。)

下面的属性不受 ResetState 的影响。

Normalization

Namespaces

XmlResolver

WhitespaceHandling

System.Xml.XmlTextReader.ResetState 方法例子

下面的示例将两个 XML 文档分析为一个流。

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(" 12345 "); 

     enc = new UnicodeEncoding();
     byte[] unicodeBuffer = enc.GetBytes(" root ");

     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();
       }
    } 

  }
}

异常

异常 异常描述
InvalidOperationException 如果读取器是使用 XmlParserContext 构造的,则调用 ResetState。
XmlException 单个流中的文档不共享同一编码。

命名空间

namespace: System.Xml

程序集: System.Xml(在 System.Xml.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。