XmlDocument.ReadNode(XmlReader) メソッド

定義

XmlReader 内の情報に基づいて、XmlNode オブジェクトを作成します。 リーダーは、ノードまたは属性に配置されている必要があります。

public:
 virtual System::Xml::XmlNode ^ ReadNode(System::Xml::XmlReader ^ reader);
public virtual System.Xml.XmlNode ReadNode (System.Xml.XmlReader reader);
public virtual System.Xml.XmlNode? ReadNode (System.Xml.XmlReader reader);
abstract member ReadNode : System.Xml.XmlReader -> System.Xml.XmlNode
override this.ReadNode : System.Xml.XmlReader -> System.Xml.XmlNode
Public Overridable Function ReadNode (reader As XmlReader) As XmlNode

パラメーター

reader
XmlReader

XML ソース。

戻り値

XmlNode

新しい XmlNode。ノードがそれ以上存在しない場合は null

例外

リーダーが、EndElement や EndEntity など、正しい DOM ノードに変換されないノード型に配置されています。

次の例では、 ReadNode 新しいノードを作成し、ドキュメントに新しいノードを挿入します。

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   //Create the XmlDocument.
   XmlDocument^ doc = gcnew XmlDocument;
   doc->LoadXml( "<bookstore><book genre='novel' ISBN='1-861001-57-5'><title>Pride And Prejudice</title></book></bookstore>" );
   
   //Create a reader.
   XmlTextReader^ reader = gcnew XmlTextReader( "cd.xml" );
   reader->MoveToContent(); //Move to the cd element node.
   
   //Create a node representing the cd element node.
   XmlNode^ cd = doc->ReadNode( reader );
   
   //Insert the new node into the document.
   doc->DocumentElement->AppendChild( cd );
   Console::WriteLine( "Display the modified XML..." );
   doc->Save( Console::Out );
}

using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<bookstore>" +
                "<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>" +
                "</bookstore>");

    //Create a reader.
    XmlTextReader reader = new XmlTextReader("cd.xml");
    reader.MoveToContent(); //Move to the cd element node.

    //Create a node representing the cd element node.
    XmlNode cd = doc.ReadNode(reader);

    //Insert the new node into the document.
    doc.DocumentElement.AppendChild(cd);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);
  }
}
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        'Create the XmlDocument.
        Dim doc As New XmlDocument()
        doc.LoadXml("<bookstore>" & _
                    "<book genre='novel' ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "</book>" & _
                    "</bookstore>")
        
        'Create a reader.
        Dim reader As New XmlTextReader("cd.xml")
        reader.MoveToContent() 'Move to the cd element node.
        'Create a node representing the cd element node.
        Dim cd As XmlNode = doc.ReadNode(reader)
        
        'Insert the new node into the document.
        doc.DocumentElement.AppendChild(cd)
        
        Console.WriteLine("Display the modified XML...")
        doc.Save(Console.Out)
    End Sub
End Class

この例では、 cd.xmlファイルを入力として使用します。


<!-- sample CD -->
<cd genre='alternative'>
  <title>Americana</title>
  <artist>Offspring</artist>
</cd>

注釈

指定されたリーダーから 1 つ XmlNode を読み取り、リーダーを次のノードに配置します。 このメソッドは、リーダーが XmlNode 現在配置されている一致 NodeType する型を作成します。 (リーダーが初期状態の場合は、 ReadNode リーダーを最初のノードに進めてから、そのノードで動作します)。

リーダーが要素の先頭に配置されている場合は、 ReadNode 現在のノードの終了タグまで、すべての属性と子ノードを読み取ります。 返される値には XmlNode 、読み取られたすべてのものを表すサブツリーが含まれます。 リーダーは終了タグの直後に配置されます。

ReadNode 属性を読み取ることもできますが、この場合、リーダーは次の属性に進むことはありません。 これにより、次の C# コードを記述できます。

XmlDocument doc = new XmlDocument();  
while (reader.MoveToNextAttribute())  
{  
  XmlNode a = doc.ReadNode(reader);  
  // Do some more processing.  
}  

ReadNodeは属性値を消費しますが、これは属性XmlReader.ReadAttributeValueを呼び出ReadNodeした後に戻りますfalse

注意 (継承者)

このメソッドには継承要求があります。 メソッドをオーバーライドするには、完全信頼が ReadNode 必要です。

このメソッドは、ドキュメント オブジェクト モデル (DOM) に対する Microsoft の拡張機能です。

適用対象

こちらもご覧ください