XmlTextReader.GetRemainder メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バッファー内の XML の剰余を取得します。
public:
System::IO::TextReader ^ GetRemainder();
public System.IO.TextReader GetRemainder ();
member this.GetRemainder : unit -> System.IO.TextReader
Public Function GetRemainder () As TextReader
戻り値
バッファー内の XML の剰余を格納している TextReader。
例
次の例では、XML ドキュメントの最初の部分を読み取り、2 番目のリーダーを使用してドキュメントの読み取りを完了するために使用 GetRemainder
します。
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
int main()
{
String^ filename = "tworeads.xml";
XmlTextReader^ reader = gcnew XmlTextReader( filename );
reader->WhitespaceHandling = WhitespaceHandling::None;
// Read the first part of the XML document
while ( reader->Read() )
{
// Display the elements and stop reading on the book endelement tag
// then go to ReadPart2 to start another reader to read the rest of the file.
switch ( reader->NodeType )
{
case XmlNodeType::Element:
Console::WriteLine( "Name: {0}", reader->Name );
break;
case XmlNodeType::Text:
Console::WriteLine( " Element Text: {0}", reader->Value );
break;
case XmlNodeType::EndElement:
// Stop reading when the reader gets to the end element of the book node.
if ( "book" == reader->LocalName )
{
Console::WriteLine( "End reading first book..." );
Console::WriteLine();
goto ReadPart2;
}
break;
}
}
// Read the rest of the XML document
ReadPart2:
Console::WriteLine( "Begin reading second book..." );
// Create a new reader to read the rest of the document.
XmlTextReader^ reader2 = gcnew XmlTextReader( reader->GetRemainder() );
while ( reader2->Read() )
{
switch ( reader2->NodeType )
{
case XmlNodeType::Element:
Console::WriteLine( "Name: {0}", reader2->Name );
break;
case XmlNodeType::Text:
Console::WriteLine( " Element Text: {0}", reader2->Value );
break;
case XmlNodeType::EndElement:
// Stop reading when the reader gets to the end element of the book node.
if ( "book" == reader2->LocalName )
{
Console::WriteLine( "End reading second book..." );
goto Done;
}
break;
}
}
Done:
Console::WriteLine( "Done." );
reader->Close();
reader2->Close();
}
using System;
using System.Xml;
public class Sample {
private static string filename = "tworeads.xml";
public static void Main() {
XmlTextReader reader = new XmlTextReader(filename);
reader.WhitespaceHandling=WhitespaceHandling.None;
// Read the first part of the XML document
while(reader.Read()) {
// Display the elements and stop reading on the book endelement tag
// then go to ReadPart2 to start another reader to read the rest of the file.
switch(reader.NodeType) {
case XmlNodeType.Element:
Console.WriteLine("Name: {0}", reader.Name);
break;
case XmlNodeType.Text:
Console.WriteLine(" Element Text: {0}", reader.Value);
break;
case XmlNodeType.EndElement:
// Stop reading when the reader gets to the end element of the book node.
if ("book"==reader.LocalName) {
Console.WriteLine("End reading first book...");
Console.WriteLine();
goto ReadPart2;
}
break;
}
}
// Read the rest of the XML document
ReadPart2:
Console.WriteLine("Begin reading second book...");
// Create a new reader to read the rest of the document.
XmlTextReader reader2 = new XmlTextReader(reader.GetRemainder());
while(reader2.Read()) {
switch (reader2.NodeType) {
case XmlNodeType.Element:
Console.WriteLine("Name: {0}", reader2.Name);
break;
case XmlNodeType.Text:
Console.WriteLine(" Element Text: {0}", reader2.Value);
break;
case XmlNodeType.EndElement:
// Stop reading when the reader gets to the end element of the book node.
if ("book"==reader2.LocalName) {
Console.WriteLine("End reading second book...");
goto Done;
}
break;
}
}
Done:
Console.WriteLine("Done.");
reader.Close();
reader2.Close();
}
}//End class
Imports System.Xml
Public Class Sample
Private Shared filename As String = "tworeads.xml"
Public Shared Sub Main()
Dim reader As New XmlTextReader(filename)
reader.WhitespaceHandling = WhitespaceHandling.None
' Read the first part of the XML document
While reader.Read()
' Display the elements and stop reading on the book endelement tag
' then go to ReadPart2 to start another reader to read the rest of the file.
Select Case reader.NodeType
Case XmlNodeType.Element
Console.WriteLine("Name: {0}", reader.Name)
Case XmlNodeType.Text
Console.WriteLine(" Element Text: {0}", reader.Value)
Case XmlNodeType.EndElement
' Stop reading when the reader gets to the end element of the book node.
If "book" = reader.LocalName Then
Console.WriteLine("End reading first book...")
Console.WriteLine()
GoTo ReadPart2
End If
End Select
End While
' Read the rest of the XML document
ReadPart2:
Console.WriteLine("Begin reading second book...")
' Create a new reader to read the rest of the document.
Dim reader2 As New XmlTextReader(reader.GetRemainder())
While reader2.Read()
Select Case reader2.NodeType
Case XmlNodeType.Element
Console.WriteLine("Name: {0}", reader2.Name)
Case XmlNodeType.Text
Console.WriteLine(" Element Text: {0}", reader2.Value)
Case XmlNodeType.EndElement
'Stop reading when the reader gets to the end element of the book node.
If "book" = reader2.LocalName Then
Console.WriteLine("End reading second book...")
GoTo Done
End If
End Select
End While
Done:
Console.WriteLine("Done.")
reader.Close()
reader2.Close()
End Sub
End Class
この例では、入力ファイル tworeads.xml
を使用します。
<?xml version="1.0" ?>
<bookstore>
<book>
<title>Pride And Prejudice</title>
<author>Jane Austen</author>
</book>
<book>
<title>The Handmaid's Tale</title>
<author>Margaret Atwood</author>
</book>
</bookstore>
注釈
注意
.NET Framework 2.0 以降では、このメソッドを使用してXmlReader.Create新しい機能を利用してインスタンスを作成XmlReaderすることをお勧めします。
バッファー処理をRead
行うためXmlTextReader、データが失われないように、未使用のバッファーの残りの部分を返すことができる必要があります。 これにより、プロトコル (マルチパート MIME など) は、他のものと同じストリームに XML をパッケージ化できます。
このメソッドを呼び出した後、 EOF に設定 true
されます。