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.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 'Sample

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


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

注釈

指定さXmlNodeれたリーダーから1つを読み取り、次のノードにリーダーを配置します。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).

適用対象

こちらもご覧ください