Assembly: System.Xml (in system.xml.dll)
Public Sub ResetState
Dim instance As XmlTextReader instance.ResetState
public void ResetState ()
public: void ResetState ()
public void ResetState ()
public function ResetState ()
| Tipo di eccezione | Condizione |
|---|---|
| Chiamata a ResetState se il visualizzatore è stato costruito con un oggetto XmlParserContext. |
|
| I documenti di uno stesso flusso non condividono la stessa codifica. |
Nota |
|---|
| Nella versione Microsoft .NET Framework versione 2.0 è consigliabile creare istanze di XmlReader utilizzando il metodo System.Xml.XmlReader.Create. In questo modo è possibile sfruttare completamente le nuove funzionalità introdotte in questa versione. Per ulteriori informazioni, vedere Creazione di lettori XML. |
Questo metodo consente di analizzare più documenti XML in un unico flusso. Quando si raggiunge la fine di un documento XML, è possibile chiamare ResetState per reimpostare lo stato del visualizzatore e prepararlo per il successivo documento XML.
Importante: |
|---|
| I documenti del flusso devono condividere la stessa codifica. In caso contrario, quando viene chiamato ResetState, viene generata un'XmlException. Questo comportamento è stato modificato rispetto a .NET Framework 1.1 e versioni precedenti. |
ResetState non ha alcun effetto sulle proprietà riportate di seguito.
Nell'esempio riportato di seguito vengono analizzati due documenti XML di uno stesso flusso.
Imports System 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
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(); } } } }
#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(); } }
import System.*;
import System.IO.*;
import System.Text.*;
import System.Xml.*;
public class Sample
{
public static void main(String[] args)
{
Encoding enc = new UTF8Encoding();
ubyte utf8Buffer[] = enc.GetBytes("<root> 12345 </root>");
enc = new UnicodeEncoding();
ubyte unicodeBuffer[] = enc.GetBytes("<?xml version='1.0' ?><unicode>"
+ " root </unicode>");
MemoryStream memStrm = new MemoryStream();
memStrm.Write(unicodeBuffer, 0, unicodeBuffer.get_Length());
memStrm.Write(utf8Buffer, 0, utf8Buffer.get_Length());
memStrm.set_Position(0);
XmlTextReader reader = new XmlTextReader(memStrm);
while (reader.Read()) {
Console.WriteLine("NodeType: {0}", reader.get_NodeType());
if (XmlNodeType.EndElement.Equals(reader.get_NodeType())
&& "root".Equals(reader.get_Name())) {
break;
}
if (XmlNodeType.EndElement.Equals(reader.get_NodeType())) {
reader.ResetState();
}
}
} //main
} //Sample
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
.NET Framework
Supportato in: 2.0 1.1 1.0.NET Compact Framework
Supportato in: 2.0 1.0Riferimenti
Classe XmlTextReaderMembri XmlTextReader
Spazio dei nomi System.Xml
Enumerazione ReadState
Nota