Share via


XmlDocument.ReadNode(XmlReader) Yöntem

Tanım

içindeki XmlReaderbilgileri temel alan bir XmlNode nesne oluşturur. Okuyucu bir düğüme veya özniteliğe konumlandırılmalıdır.

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

Parametreler

reader
XmlReader

XML kaynağı.

Döndürülenler

Yeni XmlNode veya null başka düğüm yoksa.

Özel durumlar

Okuyucu, geçerli bir DOM düğümüne (örneğin, EndElement veya EndEntity) çevrilmeyen bir düğüm türüne konumlandırılır.

Örnekler

Aşağıdaki örnek, yeni bir düğüm oluşturmak için kullanır ReadNode ve ardından yeni düğümü belgeye ekler.

#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

Örnekte giriş olarak dosyası cd.xmlkullanılır.


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

Açıklamalar

Verilen okuyucudan bir XmlNode tane okur ve okuyucuyu bir sonraki düğüme konumlandırıyor. Bu yöntem, okuyucunun XmlNode şu anda konumlandırıldığı ile eşleşen NodeType türü oluşturur. (Okuyucu ilk durumdaysa okuyucuyu ReadNode ilk düğüme ilerler ve ardından bu düğümde çalışır.)

Okuyucu bir öğenin başına konumlandırıldıysa, ReadNode geçerli düğümün bitiş etiketine kadar ve dahil olmak üzere tüm öznitelikleri ve alt düğümleri okur. Döndürülen XmlNode , okunan her şeyi temsil eden alt ağacı içerir. Okuyucu bitiş etiketinden hemen sonra konumlandırılır.

ReadNode öznitelikleri de okuyabilir, ancak bu durumda okuyucuyu sonraki özniteliğe ilerletmez. Bu, aşağıdaki C# kodunu yazmanızı sağlar:

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

ReadNodeyine de öznitelik değerini tüketir, yani bir öznitelikte çağrıldıktan ReadNode sonra döndürürfalse. XmlReader.ReadAttributeValue

Devralanlara Notlar

Bu yöntemin devralma talebi vardır. Yöntemini geçersiz kılmak ReadNode için tam güven gereklidir.

Bu yöntem, Belge Nesne Modeli'nin (DOM) Microsoft bir uzantısıdır.

Şunlara uygulanır

Ayrıca bkz.