XmlTextReader::ResetState Method ()

 

Resets the state of the reader to ReadState.Initial.

Namespace:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

public:
void ResetState()

Exception Condition
InvalidOperationException

Calling ResetState if the reader was constructed using an XmlParserContext.

XmlException

Documents in a single stream do not share the same encoding.

System_CAPS_noteNote

Starting with the .NET Framework 2.0, we recommend that you create XmlReader instances by using the XmlReader::Create method to take advantage of new functionality.

This method enables you to parse multiple XML documents in a single stream. When you reach the end of an XML document, you can call ResetState to reset the state of the reader in preparation for the next XML document.

System_CAPS_importantImportant

The documents in the stream must share the same encoding. If this is not the case, when ResetState is called an XmlException is thrown. (This is a change in behavior from .NET Framework version 1.1 and earlier).

The following properties are not affected by ResetState.

The following example parses two XML documents in a single stream.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml;
int main()
{
   Encoding^ enc = gcnew UTF8Encoding;
   array<Byte>^utf8Buffer = enc->GetBytes( "<root> 12345 </root>" );
   enc = gcnew UnicodeEncoding;
   array<Byte>^unicodeBuffer = enc->GetBytes( "<?xml version='1.0' ?><unicode> root </unicode>" );
   MemoryStream^ memStrm = gcnew MemoryStream;
   memStrm->Write( unicodeBuffer, 0, unicodeBuffer->Length );
   memStrm->Write( utf8Buffer, 0, utf8Buffer->Length );
   memStrm->Position = 0;
   XmlTextReader^ reader = gcnew 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();
   }
}

.NET Framework
Available since 1.1
Return to top
Show: