Condividi tramite


XmlDocument.ReadNode(XmlReader) Metodo

Definizione

Crea un oggetto XmlNode in base alle informazioni contenute in XmlReader. Il lettore deve essere posizionato su un nodo o un attributo.

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

Si applica a

Vedi anche