XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) XmlDocument.ReadNode(XmlReader) Method

Definición

Crea un objeto XmlNode tomando como base la información de XmlReader.Creates an XmlNode object based on the information in the XmlReader. El lector debe estar situado en un nodo o en un atributo.The reader must be positioned on a node or attribute.

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

Parámetros

reader
XmlReader XmlReader XmlReader XmlReader

XML de origen.The XML source

Devoluciones

Nuevo XmlNode o null si no hay más nodos.The new XmlNode or null if no more nodes exist.

Excepciones

El lector está situado en un tipo de nodo que no se traslada a un nodo DOM válido (por ejemplo, EndElement o EndEntity).The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).

Ejemplos

En el ejemplo siguiente ReadNode se usa para crear un nuevo nodo y, a continuación, se inserta el nuevo nodo en el documento.The following example uses ReadNode to create a new node and then inserts the new node into the document.

#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

En el ejemplo se usa el cd.xmlarchivo,, como entrada.The example uses the file, cd.xml, as input.


<!-- sample CD -->
<cd genre='alternative'>
  <title>Americana</title>
  <artist>Offspring</artist>
</cd>

Comentarios

Lee una XmlNode del lector dado y coloca el lector en el siguiente nodo.Reads one XmlNode from the given reader and positions the reader on the next node. Este método crea el tipo de XmlNode coincidencia con NodeType el en el que está situado actualmente el lector.This method creates the type of XmlNode matching the NodeType on which the reader is currently positioned. (Si el lector está en el estado inicial, ReadNode hace avanzar el lector hasta el primer nodo y, a continuación, funciona en ese nodo).(If the reader is in the initial state, ReadNode advances the reader to the first node and then operates on that node.)

Si el lector está situado en el inicio de un elemento, ReadNode Lee todos los atributos y nodos secundarios, hasta la etiqueta de cierre del nodo actual inclusive.If the reader is positioned on the start of an element, ReadNode reads all the attributes and any child nodes, up to and including the end tag of the current node. El XmlNode objeto devuelto contiene el subárbol que representa todas las lecturas.The XmlNode returned contains the sub-tree representing everything read. El lector se coloca inmediatamente después de la etiqueta de cierre.The reader is positioned immediately after the end tag.

ReadNodetambién puede leer atributos, pero en este caso no avanza el lector hasta el siguiente atributo.ReadNode can also read attributes, but in this case it does not advance the reader to the next attribute. Esto le permite escribir el código siguiente C# :This allows you to write the following C# code:

XmlDocument doc = new XmlDocument();  
while (reader.MoveToNextAttribute())  
{  
  XmlNode a = doc.ReadNode(reader);  
  // Do some more processing.  
}  

ReadNodeno usa el valor de atributo, lo que significa que ReadNode después de llamar a XmlReader.ReadAttributeValue en falseun atributo, devuelve.ReadNode does consume the attribute value though, which means after calling ReadNode on an attribute, XmlReader.ReadAttributeValue returns false.

Notas a los desarrolladores de herederos

Este método tiene una petición de herencia.This method has an inheritance demand. Se requiere plena confianza para invalidar ReadNode el método.Full trust is required to override the ReadNode method.

Este método es una extensión de Microsoft para el Document Object Model (DOM).This method is a Microsoft extension to the Document Object Model (DOM).

Se aplica a

Consulte también: