XmlDocument.ReadNode(XmlReader) 메서드

정의

XmlNode의 내용을 기준으로 XmlReader 개체를 만듭니다. 판독기는 노드나 특성에 위치해야 합니다.

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입니다.

예외

판독기가 유효한 DOM 노드(예: EndElement 또는 EndEntity)로 변환되지 않는 노드 형식 위치에 있습니다.

예제

다음 예제에서는 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>

설명

지정된 판독기에서 하나를 XmlNode 읽고 판독기를 다음 노드에 배치합니다. 이 메서드는 판독기를 현재 배치 하는 일치 NodeType 하는 형식 XmlNode 을 만듭니다. (판독기 초기 상태에 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 확장입니다.

적용 대상

추가 정보