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

XmlNode

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.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

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 jednu XmlNode z dané čtečky 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 čtečka umístěna 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 objekt 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 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 se vyžaduje úplná důvěryhodnost.

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

Platí pro

Viz také