XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) Method

定義

XmlReader 内の情報に基づいて、XmlNode オブジェクトを作成します。Creates an XmlNode object based on the information in the XmlReader. リーダーは、ノードまたは属性に配置されている必要があります。The reader must be positioned on a node or attribute.

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 XmlReader XmlReader XmlReader

XML ソース。The XML source

戻り値

新しい XmlNode。ノードがそれ以上存在しない場合は nullThe new XmlNode or null if no more nodes exist.

例外

リーダーが、EndElement や EndEntity など、正しい DOM ノードに変換されないノード型に配置されています。The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).

次の例ではReadNode新しいノードを作成し、ドキュメントに新しいノードを挿入します。The following example uses ReadNode to create a new node and then inserts the new node into the document.

#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
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 'Main 
End Class 'Sample

例では、ファイルを使用してcd.xml、入力として。The example uses the file, cd.xml, as input.


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

注釈

1 つの読み取りXmlNode指定したリーダーから次のノードで、リーダーが配置とします。Reads one XmlNode from the given reader and positions the reader on the next node. このメソッドの型を作成するXmlNodeに一致する、NodeTypeにリーダーが現在配置されています。This method creates the type of XmlNode matching the NodeType on which the reader is currently positioned. (リーダーが初期の状態の場合ReadNode最初のノードに、リーダーを進めるし、そのノードで動作します)。(If the reader is in the initial state, ReadNode advances the reader to the first node and then operates on that node.)

要素の開始時に、リーダーが配置されている場合ReadNode読み取りすべての属性および子ノード、最大、現在のノードの終了タグを含むです。If the reader is positioned on the start of an element, ReadNode reads all the attributes and any child nodes, up to and including the end tag of the current node. XmlNode返されるすべての読み取りを表すサブツリーが含まれています。The XmlNode returned contains the sub-tree representing everything read. リーダーは終了タグの直後に配置されます。The reader is positioned immediately after the end tag.

ReadNode 属性を読み取ることもできますが、ここは変化しません、リーダーを次の属性。ReadNode can also read attributes, but in this case it does not advance the reader to the next attribute. 次の c# コードを記述できます。This allows you to write the following C# code:

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

ReadNode 使用して属性値で呼び出した後つまりReadNode属性にXmlReader.ReadAttributeValue返しますfalseします。ReadNode does consume the attribute value though, which means after calling ReadNode on an attribute, XmlReader.ReadAttributeValue returns false.

注意 (継承者)

このメソッドは、継承確認要求です。This method has an inheritance demand. オーバーライドする完全な信頼が必要なReadNodeメソッド。Full trust is required to override the ReadNode method.

このメソッドは、ドキュメント オブジェクト モデル (DOM) に Microsoft 拡張機能です。This method is a Microsoft extension to the Document Object Model (DOM).

適用対象

こちらもご覧ください