XmlDocument.ReadNode(XmlReader) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 ReadNode ein neuer Knoten erstellt und anschließend der neue Knoten in das Dokument eingefügt.
#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 als cd.xmlEingabe verwendet.
<!-- sample CD -->
<cd genre='alternative'>
<title>Americana</title>
<artist>Offspring</artist>
</cd>
Hinweise
Liest einen XmlNode aus dem angegebenen Leser und positioniert den Leser auf dem nächsten Knoten. Mit dieser Methode wird der Typ des Übereinstimmens XmlNode erstellt, auf dem NodeType der Leser aktuell positioniert ist. (Wenn sich der Leser im Anfangszustand befindet, ReadNode wird der Lesezugriff auf den ersten Knoten ausgeführt und dann auf diesem Knoten ausgeführt.)
Wenn der Leser am Anfang eines Elements positioniert ist, ReadNode liest er alle Attribute und alle untergeordneten Knoten bis hin zum Endtag des aktuellen Knotens vor und schließt das Endtag des aktuellen Knotens ein. Die XmlNode zurückgegebene Struktur enthält die Unterstruktur, die alle gelesenen Elemente darstellt. Der Leser wird unmittelbar nach dem Endtag positioniert.
ReadNode kann auch Attribute lesen, aber in diesem Fall wird der Leser nicht zum nächsten Attribut weitergeschützt. 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, nachdem ein Attribut aufgerufen ReadNode wurde, XmlReader.ReadAttributeValue zurück false.
Hinweise für Vererber
Diese Methode verfügt über eine Vererbungsnachfrage. Vollständige Vertrauensstellung ist erforderlich, um die ReadNode Methode außer Kraft zu setzen.
Diese Methode ist eine Microsoft-Erweiterung für das Dokumentobjektmodell (DOM).