XmlDocument.ReadNode-Methode
Erstellt anhand der Informationen im XmlReader ein XmlNode-Objekt. Der Reader muss auf einem Knoten oder Attribut positioniert sein.
Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)
Syntax
'Declaration
Public Overridable Function ReadNode ( _
reader As XmlReader _
) As XmlNode
'Usage
Dim instance As XmlDocument
Dim reader As XmlReader
Dim returnValue As XmlNode
returnValue = instance.ReadNode(reader)
public virtual XmlNode ReadNode (
XmlReader reader
)
public:
virtual XmlNode^ ReadNode (
XmlReader^ reader
)
public XmlNode ReadNode (
XmlReader reader
)
public function ReadNode (
reader : XmlReader
) : XmlNode
Parameter
- reader
Die XML-Quelle
Rückgabewert
Der neue XmlNode oder NULL (Nothing in Visual Basic), wenn keine weiteren Knoten vorhanden sind.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Der Reader ist auf einem Knotentyp positioniert, der in keinen gültigen DOM-Knoten übersetzt (z. B. EndElement oder EndEntity). |
Hinweise
Liest einen XmlNode aus dem angegebenen Reader und positioniert den Reader auf dem nächsten Knoten. Diese Methode erstellt den Typ von XmlNode, der mit dem NodeType übereinstimmt, auf dem der Reader gerade positioniert ist. (Wenn sich der Reader im Ausgangszustand befindet, setzt ReadNode den Reader auf den ersten Knoten. An diesem Knoten findet dann die Verarbeitung statt.)
Wenn der Reader am Anfang eines Elements positioniert ist, liest ReadNode alle Attribute und alle untergeordneten Knoten bis einschließlich des Endtags des aktuellen Knotens. Der zurückgegebene XmlNode enthält die Teilstruktur, die alle gelesenen Elemente darstellt. Der Reader wird direkt hinter dem Endtag positioniert.
ReadNode kann auch Attribute lesen, setzt jedoch in diesem Fall den Reader nicht auf das nächste Attribut. Daher können Sie folgenden C#-Code schreiben:
XmlDocument doc = new XmlDocument();
while (reader.MoveToNextAttribute())
{
XmlNode a = doc.ReadNode(reader);
// Do some more processing.
}
ReadNode verarbeitet den Attributwert dennoch. Dies bedeutet, dass XmlReader.ReadAttributeValue nach dem Aufruf von ReadNode für ein Attribut false zurückgibt.
Hinweise für Erben Diese Methode besitzt eine Vererbungsforderung. Zum Überschreiben der ReadNode-Methode ist vollständige Vertrauenswürdigkeit erforderlich. Weitere Informationen finden Sie unter Vererbungsforderungen. Diese Methode ist eine Microsoft-Erweiterung des Dokumentobjektmodells (Document Object Model, DOM).
Beispiel
Im folgenden Beispiel wird mit ReadNode ein neuer Knoten erstellt und anschließend in das Dokument eingefügt.
Option Explicit
Option Strict
Imports System
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 'Main
End Class 'Sample
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);
}
}
#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 );
}
import System.*;
import System.IO.*;
import System.Xml.*;
public class Sample
{
public static void main(String[] args)
{
//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.get_DocumentElement().AppendChild(cd);
Console.WriteLine("Display the modified XML...");
doc.Save(Console.get_Out());
} //main
} //Sample
Im Beispiel wird die Datei cd.xml als Eingabe verwendet.
<!-- sample CD -->
<cd genre='alternative'>
<title>Americana</title>
<artist>Offspring</artist>
</cd>
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
XmlDocument-Klasse
XmlDocument-Member
System.Xml-Namespace
XmlReader
ImportNode