次の方法で共有


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: &#65;</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

参照

XmlNodeReader クラス | XmlNodeReader メンバ | System.Xml 名前空間