XmlDocument.ReadNode(XmlReader) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
Parametri
- reader
- XmlReader
Origine XML.
Restituisce
Nuovo oggetto XmlNode
oppure null
se non esistono altri nodi.
Eccezioni
Il visualizzatore è posizionato su un tipo di nodo che non esegue la conversione in un nodo DOM valido, ad esempio EndElement o EndEntity.
Esempio
Nell'esempio seguente viene usato ReadNode
per creare un nuovo nodo e quindi inserire il nuovo nodo nel documento.
#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
Nell'esempio viene usato il file, , cd.xml
come input.
<!-- sample CD -->
<cd genre='alternative'>
<title>Americana</title>
<artist>Offspring</artist>
</cd>
Commenti
Legge uno XmlNode
dal lettore specificato e posiziona il lettore nel nodo successivo. Questo metodo crea il tipo di XmlNode
corrispondenza su NodeType cui è attualmente posizionato il lettore. Se il lettore si trova nello stato iniziale, ReadNode
passa il lettore al primo nodo e quindi opera su tale nodo.
Se il lettore viene posizionato all'inizio di un elemento, legge tutti gli attributi e tutti i nodi figlio, ReadNode
fino a e incluso il tag finale del nodo corrente. L'oggetto XmlNode
restituito contiene l'albero secondario che rappresenta tutto il letto. Il lettore viene posizionato immediatamente dopo il tag finale.
ReadNode
può anche leggere gli attributi, ma in questo caso non avanza il lettore all'attributo successivo. In questo modo è possibile scrivere il codice C# seguente:
XmlDocument doc = new XmlDocument();
while (reader.MoveToNextAttribute())
{
XmlNode a = doc.ReadNode(reader);
// Do some more processing.
}
ReadNode
utilizza tuttavia il valore dell'attributo, che significa dopo aver chiamato ReadNode
su un attributo, XmlReader.ReadAttributeValue restituisce false
.
Note per gli eredi
Questo metodo ha una richiesta di ereditarietà. L'attendibilità completa è necessaria per eseguire l'override del ReadNode
metodo.
Questo metodo è un'estensione Microsoft per il modello a oggetti document (DOM).