XmlDocument.ReadNode(XmlReader) Methode

Definitie

Hiermee maakt u een XmlNode object op basis van de informatie in de XmlReader. De lezer moet op een knooppunt of kenmerk worden weergegeven.

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

Parameters

reader
XmlReader

De XML-bron.

Retouren

De nieuwe XmlNode of null als er geen knooppunten meer bestaan.

Uitzonderingen

De lezer bevindt zich op een knooppunttype dat niet vertaalt naar een geldig DOM-knooppunt (bijvoorbeeld EndElement of EndEntity).

Voorbeelden

In het volgende voorbeeld wordt gebruikgemaakt ReadNode van het maken van een nieuw knooppunt en wordt het nieuwe knooppunt vervolgens in het document ingevoegd.

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

In het voorbeeld wordt het bestand als cd.xmlinvoer gebruikt.


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

Opmerkingen

Hiermee leest u een XmlNode van de opgegeven lezer en plaatst u de lezer op het volgende knooppunt. Met deze methode maakt u het type overeenkomst XmlNodeNodeType waarop de lezer zich momenteel bevindt. (Als de lezer de eerste status heeft, ReadNode gaat u naar het eerste knooppunt en werkt u vervolgens op dat knooppunt.)

Als de lezer aan het begin van een element staat, ReadNode leest u alle kenmerken en eventuele onderliggende knooppunten, tot en met de eindtag van het huidige knooppunt. De XmlNode geretourneerde bevat de substructuur die alles aangeeft dat is gelezen. De lezer wordt direct na de eindtag weergegeven.

ReadNode kan ook kenmerken lezen, maar in dit geval gaat de lezer niet verder naar het volgende kenmerk. Hiermee kunt u de volgende C#-code schrijven:

XmlDocument doc = new XmlDocument();
while (reader.MoveToNextAttribute())
{
  XmlNode a = doc.ReadNode(reader);
  // Do some more processing.
}

ReadNode verbruikt de kenmerkwaarde echter, wat betekent dat na het aanroepen ReadNode van een kenmerk, XmlReader.ReadAttributeValue retourneert false.

Notities voor overnemers

Deze methode heeft een overnamevraag. Volledig vertrouwen is vereist om de ReadNode methode te overschrijven.

Deze methode is een Microsoft extensie voor het Document Object Model (DOM).

Van toepassing op

Zie ook