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
XmlNode Nuovo o null se non esistono più nodi.
Eccezioni
Il lettore è posizionato in un tipo di nodo che non viene convertito in un nodo DOM valido, ad esempio EndElement o EndEntity.
Esempio
Nell'esempio seguente viene ReadNode usato per creare un nuovo nodo e quindi inserire il nuovo nodo nel documento.
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 corrispondenza dell'oggetto XmlNodeNodeType in cui è attualmente posizionato il lettore. Se il lettore è nello stato iniziale, ReadNode sposta il lettore al primo nodo e quindi opera su tale nodo.
Se il lettore viene posizionato all'inizio di un elemento, ReadNode legge tutti gli attributi e tutti i nodi figlio, fino al tag finale del nodo corrente. L'oggetto XmlNode restituito contiene il sottoalbero che rappresenta tutti gli elementi letti. Il lettore viene posizionato immediatamente dopo il tag di fine.
ReadNode può anche leggere gli attributi, ma in questo caso non fa avanzare 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 però il valore dell'attributo, ovvero dopo aver chiamato ReadNode su un attributo, XmlReader.ReadAttributeValue restituisce false.
Note per gli eredi
Questo metodo ha una richiesta di ereditarietà. L'attendibilità totale è necessaria per eseguire l'override del ReadNode metodo .
Questo metodo è un'estensione Microsoft al DOM (Document Object Model).