Udostępnij za pośrednictwem


XmlDocument.ReadNode(XmlReader) Metoda

Definicja

XmlNode Tworzy obiekt na podstawie informacji w pliku 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

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 , aby utworzyć nowy węzeł, a następnie wstawia nowy węzeł do dokumentu.

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 czytelnik 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, maksymalnie do i łącznie z tagiem końcowym bieżącego węzła. Zwrócony XmlNode element zawiera drzewo podrzędne reprezentujące wszystko, co jest odczytywane. Czytnik jest umieszczany natychmiast po tagu końcowym.

ReadNode może również odczytywać atrybuty, ale w tym przypadku nie powoduje przechodzenia czytnika do następnego atrybutu. Umożliwia to napisanie następującego kodu w języku C#:

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

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

Notatki 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ż