Udostępnij za pośrednictwem


XmlDocument.ReadNode(XmlReader) Metoda

Definicja

XmlNode Tworzy obiekt na podstawie informacji w obiekcie XmlReader. Czytnik musi być umieszczony w węźle lub atrybucie.

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

Parametry

reader
XmlReader

Źródło XML.

Zwraca

XmlNode

Nowe XmlNode lub null jeśli nie ma więcej węzłów.

Wyjątki

Czytnik jest umieszczony w typie węzła, który nie przekłada się na prawidłowy węzeł DOM (na przykład EndElement lub EndEntity).

Przykłady

W poniższym przykładzie użyto ReadNode polecenia do utworzenia nowego węzła, a następnie wstawia nowy węzeł do dokumentu.

#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

W przykładzie użyto pliku , cd.xmljako danych wejściowych.


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

Uwagi

Odczytuje jeden XmlNode z danego czytnika i umieszcza czytelnika w następnym węźle. Ta metoda tworzy typ XmlNode dopasowania NodeType , na którym obecnie znajduje się czytnik. (Jeśli czytnik jest w stanie początkowym, przechodzi czytnik do pierwszego węzła, ReadNode a następnie działa w tym węźle).

Jeśli czytnik jest umieszczony na początku elementu, ReadNode odczytuje wszystkie atrybuty i wszystkie węzły podrzędne, aż do tagu końcowego bieżącego węzła. Zwrócony XmlNode element zawiera drzewo podrzędne reprezentujące wszystko, co jest odczytywane. Czytnik jest umieszczony natychmiast po tagu końcowym.

ReadNode program może również odczytywać atrybuty, ale w tym przypadku nie powoduje on przesunia czytnika do następnego atrybutu. Dzięki temu można napisać następujący kod w języku C#:

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

ReadNode Używa jednak wartości atrybutu, co oznacza po wywołaniu ReadNode atrybutu, XmlReader.ReadAttributeValue zwraca wartość false.

Uwagi dotyczące dziedziczenia

Ta metoda ma zapotrzebowanie na dziedziczenie. Aby zastąpić metodę , wymagana ReadNode jest pełna relacja zaufania.

Ta metoda jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).

Dotyczy

Zobacz też