XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) Method

Definition

Erstellt anhand der Informationen im XmlReader ein XmlNode-Objekt.Creates an XmlNode object based on the information in the XmlReader. Der Reader muss auf einem Knoten oder Attribut positioniert sein.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

Parameter

reader
XmlReader XmlReader XmlReader XmlReader

Die XML-QuelleThe XML source

Gibt zurück

Der neue XmlNode oder null, wenn keine weiteren Knoten vorhanden sind.The new XmlNode or null if no more nodes exist.

Ausnahmen

Der Reader ist auf einem Knotentyp positioniert, der nicht in einen gültigen DOM-Knoten übersetzt wird (z. B. EndElement oder EndEntity).The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).

Beispiele

Im folgenden Beispiel wird ReadNode verwendet, um einen neuen Knoten zu erstellen, und dann den neuen Knoten in das Dokument eingefügt.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

Im Beispiel wird die-Datei cd.xmlals Eingabe verwendet.The example uses the file, cd.xml, as input.


<!-- 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.Reads one XmlNode from the given reader and positions the reader on the next node. Diese Methode erstellt den Typ von XmlNode , der NodeType dem entspricht, auf dem der Reader gerade positioniert ist.This method creates the type of XmlNode matching the NodeType on which the reader is currently positioned. (Wenn sich der Reader im ursprünglichen Zustand befindet, ReadNode verschiebt den Reader auf den ersten Knoten und arbeitet dann mit diesem Knoten.)(If the reader is in the initial state, ReadNode advances the reader to the first node and then operates on that node.)

Wenn sich der Reader am Anfang eines Elements befindet, ReadNode liest alle Attribute und alle untergeordneten Knoten bis einschließlich des Endtags des aktuellen Knotens.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. Der XmlNode zurückgegebene enthält die Unterstruktur, die alles gelesene darstellt.The XmlNode returned contains the sub-tree representing everything read. Der Reader befindet sich unmittelbar nach dem Endtag.The reader is positioned immediately after the end tag.

ReadNodekann auch Attribute lesen, aber in diesem Fall wird der Reader nicht auf das nächste Attribut zurückzuführen.ReadNode can also read attributes, but in this case it does not advance the reader to the next attribute. Auf diese Weise können Sie den folgenden C# Code schreiben: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.  
}  

ReadNodeverwendet den-Attribut Wert jedoch, d. h. ReadNode , nach dem Aufruf XmlReader.ReadAttributeValue von falsefür ein Attribut gibt zurück.ReadNode does consume the attribute value though, which means after calling ReadNode on an attribute, XmlReader.ReadAttributeValue returns false.

Hinweise für Vererber

Diese Methode hat eine Vererbungs Anforderung.This method has an inheritance demand. Volle Vertrauenswürdigkeit ist erforderlich, um ReadNode die-Methode zu überschreiben.Full trust is required to override the ReadNode method.

Diese Methode ist eine Microsoft-Erweiterung für die Dokumentobjektmodell (DOM).This method is a Microsoft extension to the Document Object Model (DOM).

Gilt für:

Siehe auch