Freigeben über


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

InvalidOperationException

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