Freigeben über


XmlDocument.ReadNode(XmlReader) Methode

Definition

Erstellt ein XmlNode Objekt basierend auf den Informationen in der XmlReader. Der Leser muss auf einem Knoten oder Attribut positioniert werden.

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

Das neue XmlNode oder null wenn keine weiteren Knoten vorhanden sind.

Ausnahmen

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

Beispiele

Im folgenden Beispiel wird ReadNode ein neuer Knoten erstellt und anschließend der neue Knoten in das Dokument eingefügt.

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 als cd.xmlEingabe verwendet.


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

Hinweise

Liest eins XmlNode vom angegebenen Leser und positioniert den Leser auf dem nächsten Knoten. Diese Methode erstellt den Typ des Abgleichs XmlNode , NodeType an dem der Leser aktuell positioniert ist. (Wenn sich der Leser im Anfangszustand befindet, ReadNode wechselt der Leser zum ersten Knoten und wird dann auf diesem Knoten ausgeführt.)

Wenn der Leser am Anfang eines Elements positioniert ist, ReadNode werden alle Attribute und alle untergeordneten Knoten bis einschließlich des Endtags des aktuellen Knotens gelesen. Die XmlNode zurückgegebene Enthält die Unterstruktur, die alle gelesenen Elemente darstellt. Der Leser wird unmittelbar nach dem Endtag positioniert.

ReadNode kann auch Attribute lesen, in diesem Fall wird der Leser jedoch nicht zum nächsten Attribut weitergerückt. Auf diese Weise 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 zurückgegeben XmlReader.ReadAttributeValue wird false.

Hinweise für Vererber

Diese Methode hat eine Vererbungsnachfrage. Die vollständige Vertrauensstellung ist erforderlich, um die ReadNode Methode außer Kraft zu setzen.

Diese Methode ist eine Microsoft-Erweiterung für das Document Object Model (DOM).

Gilt für:

Weitere Informationen