XmlDocument.ReadNode(XmlReader) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.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.xml
jako 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).