XmlNodeReader.Read メソッド
ストリームから次のノードを読み取ります。
Overrides Public Function Read() As Boolean
[C#]
public override bool Read();
[C++]
public: bool Read();
[JScript]
public override function Read() : Boolean;
戻り値
次のノードが正常に読み取られた場合は true 。それ以上読み取る対象となるノードが存在しない場合は false 。
解説
リーダーが最初に作成および初期化されたときは、使用できる情報はありません。Read を呼び出して、最初のノードを読み取る必要があります。
使用例
[Visual Basic, C#, C++] XML を読み取り、各ノードを表示する例を次に示します。
Imports System
Imports System.IO
Imports System.Xml
Public Class Sample
Private Const filename As String = "items.xml"
Public Shared Sub Main()
Dim reader As XmlNodeReader = Nothing
Try
'Create an XmlNodeReader to read the XmlDocument.
Dim doc As New XmlDocument()
doc.Load(filename)
reader = New XmlNodeReader(doc)
'Parse the file and display each of the nodes.
While reader.Read()
Select Case reader.NodeType
Case XmlNodeType.Element
Console.Write("<{0}>", reader.Name)
Case XmlNodeType.Text
Console.Write(reader.Value)
Case XmlNodeType.CDATA
Console.Write(reader.Value)
Case XmlNodeType.ProcessingInstruction
Console.Write("<?{0} {1}?>", reader.Name, reader.Value)
Case XmlNodeType.Comment
Console.Write("<!--{0}-->", reader.Value)
Case XmlNodeType.XmlDeclaration
Console.Write("<?xml version='1.0'?>")
Case XmlNodeType.Document
Case XmlNodeType.EndElement
Console.Write("</{0}>", reader.Name)
End Select
End While
Finally
If Not (reader Is Nothing) Then
reader.Close()
End If
End Try
End Sub 'Main ' End class
End Class 'Sample
[C#]
using System;
using System.IO;
using System.Xml;
public class Sample
{
private const String filename = "items.xml";
public static void Main()
{
XmlNodeReader reader = null;
try
{
//Create an XmlNodeReader to read the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.Load(filename);
reader = new XmlNodeReader(doc);
//Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
Console.Write("<{0}>", reader.Name);
break;
case XmlNodeType.Text:
Console.Write(reader.Value);
break;
case XmlNodeType.CDATA:
Console.Write(reader.Value);
break;
case XmlNodeType.ProcessingInstruction:
Console.Write("<?{0} {1}?>", reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
Console.Write("<!--{0}-->", reader.Value);
break;
case XmlNodeType.XmlDeclaration:
Console.Write("<?xml version='1.0'?>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.EndElement:
Console.Write("</{0}>", reader.Name);
break;
}
}
}
finally
{
if (reader!=null)
reader.Close();
}
}
} // End class
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
String* filename = S"items.xml";
XmlNodeReader* reader = 0;
try
{
//Create an XmlNodeReader to read the XmlDocument.
XmlDocument* doc = new XmlDocument();
doc->Load(filename);
reader = new XmlNodeReader(doc);
//Parse the file and display each of the nodes.
while (reader->Read())
{
switch (reader->NodeType)
{
case XmlNodeType::Element:
Console::Write(S"<{0}>", reader->Name);
break;
case XmlNodeType::Text:
Console::Write(reader->Value);
break;
case XmlNodeType::CDATA:
Console::Write(reader->Value);
break;
case XmlNodeType::ProcessingInstruction:
Console::Write(S"<?{0} {1}?>", reader->Name, reader->Value);
break;
case XmlNodeType::Comment:
Console::Write(S"<!--{0}-->", reader->Value);
break;
case XmlNodeType::XmlDeclaration:
Console::Write(S"<?xml version='1.0'?>");
break;
case XmlNodeType::Document:
break;
case XmlNodeType::EndElement:
Console::Write(S"</{0}>", reader->Name);
break;
}
}
}
__finally
{
if (reader!=0)
reader->Close();
}
}
この例では、入力として、 items.xml というファイルを使用しています。
<?xml version="1.0"?>
<!-- This is a sample XML document -->
<!DOCTYPE Items [<!ENTITY number "123">]>
<Items>
<Item>Test with an entity: &number;</Item>
<Item>test with a child element <more/> stuff</Item>
<Item>test with a CDATA section <![CDATA[<456>]]> def</Item>
<Item>Test with a char entity: A</Item>
<!-- Fourteen chars in this element.-->
<Item>1234567890ABCD</Item>
</Items>
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET