XmlDocument.ReadNode(XmlReader) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
Parâmetros
- reader
- XmlReader
A origem XML.
Retornos
O novo XmlNode
ou null
não se houver mais nenhum nó.
Exceções
O leitor é posicionado em um tipo de nó que não converte em um nó DOM válido (por exemplo, EndElement ou EndEntity).
Exemplos
O exemplo a seguir usa ReadNode
para criar um novo nó e, em seguida, insere o novo nó no 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
O exemplo usa o arquivo , cd.xml
como entrada.
<!-- sample CD -->
<cd genre='alternative'>
<title>Americana</title>
<artist>Offspring</artist>
</cd>
Comentários
Lê um XmlNode
do leitor especificado e posiciona o leitor no próximo nó. Esse método cria o tipo de XmlNode
correspondência do NodeType no qual o leitor está posicionado no momento. (Se o leitor estiver no estado inicial, ReadNode
avançará o leitor para o primeiro nó e, em seguida, operará nesse nó.)
Se o leitor estiver posicionado no início de um elemento, ReadNode
lerá todos os atributos e todos os nós filho, até e incluindo a marca final do nó atual. O XmlNode
retornado contém a subárvore que representa tudo o que é lido. O leitor é posicionado imediatamente após a marca final.
ReadNode
também pode ler atributos, mas, nesse caso, ele não avança o leitor para o próximo atributo. Isso permite que você escreva o seguinte código C#:
XmlDocument doc = new XmlDocument();
while (reader.MoveToNextAttribute())
{
XmlNode a = doc.ReadNode(reader);
// Do some more processing.
}
ReadNode
no entanto, o consome o valor do atributo, o que significa que depois de chamar ReadNode
em um atributo, XmlReader.ReadAttributeValue retorna false
.
Notas aos Herdeiros
Esse método tem uma demanda de herança. A confiança total é necessária para substituir o ReadNode
método .
Esse método é uma extensão Microsoft para o DOM (Modelo de Objeto de Documento).