Sdílet prostřednictvím


XmlDocument.ReadNode(XmlReader) Metoda

Definice

XmlNode Vytvoří objekt na základě informací v objektu XmlReader. Čtenář musí být umístěn na uzlu nebo atributu.

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

Parametry

reader
XmlReader

Zdroj XML.

Návraty

Nové XmlNode nebo null pokud neexistují žádné další uzly.

Výjimky

Čtenář je umístěn na typu uzlu, který se nepřekládá na platný uzel DOM (například EndElement nebo EndEntity).

Příklady

Následující příklad používá ReadNode k vytvoření nového uzlu a následné vložení nového uzlu do dokumentu.

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

Příklad používá soubor , cd.xmljako vstup.


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

Poznámky

Přečte jeden XmlNode z daného čtenáře a umístí čtenáře na další uzel. Tato metoda vytvoří typ XmlNode shody NodeType , na kterém je čtenář aktuálně umístěn. (Pokud je čtenář v počátečním stavu, ReadNode přejde čtenář na první uzel a pak na daném uzlu pracuje.)

Pokud je čtenář umístěn na začátku elementu, ReadNode přečte všechny atributy a všechny podřízené uzly, až do a včetně koncové značky aktuálního uzlu. Vrácený XmlNode text obsahuje dílčí strom představující vše, co je přečteno. Čtečka se umístí hned za koncovou značku.

ReadNode může také číst atributy, ale v tomto případě nepřevádí čtenáře na další atribut. To vám umožní napsat následující kód jazyka C#:

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

ReadNode však spotřebovává hodnotu atributu, což znamená po volání ReadNode atributu, XmlReader.ReadAttributeValue vrátí false.

Poznámky pro dědice

Tato metoda má požadavek na dědičnost. K přepsání ReadNode metody je vyžadována úplná důvěryhodnost.

Tato metoda je rozšířením Microsoftu pro model DOM (Document Object Model).

Platí pro

Viz také