Freigeben über


XmlDocument.ReadNode(XmlReader) Methode

Definition

Erstellt anhand der Informationen im XmlReader ein XmlNode-Objekt. Der Reader muss auf einem Knoten oder Attribut positioniert sein.

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

Parameter

reader
XmlReader

Die XML-Quelle.

Gibt zurück

Der neue XmlNode oder null, wenn keine weiteren Knoten vorhanden sind.

Ausnahmen

Der Reader ist auf einem Knotentyp positioniert, der nicht in einen gültigen DOM-Knoten übersetzt wird (z. B. EndElement oder EndEntity).

Beispiele

Im folgenden Beispiel wird verwendet ReadNode , um einen neuen Knoten zu erstellen und dann den neuen Knoten in das Dokument einzufügen.

#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

Im Beispiel wird die Datei cd.xmlals Eingabe verwendet.


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

Hinweise

Liest einen XmlNode aus dem angegebenen Reader und positioniert den Reader auf dem nächsten Knoten. Mit dieser Methode wird der Typ erstellt XmlNode , der dem NodeType entspricht, auf dem der Reader derzeit positioniert ist. (Wenn sich der Reader im Anfangszustand befindet, ReadNode wird der Reader auf den ersten Knoten verschoben und dann auf diesem Knoten ausgeführt.)

Wenn der Reader am Anfang eines Elements positioniert ist, ReadNode liest alle Attribute und alle untergeordneten Knoten bis einschließlich des Endtags des aktuellen Knotens. Das XmlNode zurückgegebene enthält die Unterstruktur, die alles gelesene darstellt. Der Reader wird unmittelbar nach dem Endtag positioniert.

ReadNode kann auch Attribute lesen, aber in diesem Fall wird der Reader nicht auf das nächste Attribut umsteigen. Dadurch können Sie den folgenden C#-Code schreiben:

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

ReadNode verwendet jedoch den Attributwert, was bedeutet, dass nach dem Aufrufen ReadNode eines Attributs XmlReader.ReadAttributeValue zurückgegeben wird false.

Hinweise für Vererber

Diese Methode hat eine Vererbungsanforderung. Um die -Methode außer Kraft zu setzen, ist volle ReadNode vertrauenswürdig.

Diese Methode ist eine Microsoft Erweiterung des Document Object Model (DOM).

Gilt für:

Weitere Informationen