XmlDocument.ReadNode(XmlReader) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
Źródło XML.
Zwraca
Nowe XmlNode
lub null
jeśli nie ma więcej węzłów.
Wyjątki
Czytnik jest umieszczony w typie węzła, który nie przekłada się na prawidłowy węzeł DOM (na przykład EndElement lub EndEntity).
Przykłady
W poniższym przykładzie użyto ReadNode
polecenia do utworzenia nowego węzła, a następnie wstawia nowy węzeł 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
W przykładzie użyto pliku , cd.xml
jako danych wejściowych.
<!-- sample CD -->
<cd genre='alternative'>
<title>Americana</title>
<artist>Offspring</artist>
</cd>
Uwagi
Odczytuje jeden XmlNode
z danego czytnika i umieszcza czytelnika w następnym węźle. Ta metoda tworzy typ XmlNode
dopasowania NodeType , na którym obecnie znajduje się czytnik. (Jeśli czytnik jest w stanie początkowym, przechodzi czytnik do pierwszego węzła, ReadNode
a następnie działa w tym węźle).
Jeśli czytnik jest umieszczony na początku elementu, ReadNode
odczytuje wszystkie atrybuty i wszystkie węzły podrzędne, aż do tagu końcowego bieżącego węzła. Zwrócony XmlNode
element zawiera drzewo podrzędne reprezentujące wszystko, co jest odczytywane. Czytnik jest umieszczony natychmiast po tagu końcowym.
ReadNode
program może również odczytywać atrybuty, ale w tym przypadku nie powoduje on przesunia czytnika do następnego atrybutu. Dzięki temu można napisać następujący kod w języku C#:
XmlDocument doc = new XmlDocument();
while (reader.MoveToNextAttribute())
{
XmlNode a = doc.ReadNode(reader);
// Do some more processing.
}
ReadNode
Używa jednak wartości atrybutu, co oznacza po wywołaniu ReadNode
atrybutu, XmlReader.ReadAttributeValue zwraca wartość false
.
Uwagi dotyczące dziedziczenia
Ta metoda ma zapotrzebowanie na dziedziczenie. Aby zastąpić metodę , wymagana ReadNode
jest pełna relacja zaufania.
Ta metoda jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).