Поделиться через


XmlDocument.ReadNode(XmlReader) Метод

Определение

Создает объект на основе сведений XmlNode в объекте XmlReader. Средство чтения должно находиться на узле или атрибуте.

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

Параметры

reader
XmlReader

Источник XML.

Возвращаемое значение

Новые XmlNode или null если больше узлов нет.

Исключения

Средство чтения размещается в типе узла, который не преобразуется в допустимый узел DOM (например, EndElement или EndEntity).

Примеры

В следующем примере используется ReadNode для создания нового узла, а затем вставляет новый узел в документ.

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

В этом примере файл cd.xmlиспользуется в качестве входных данных.


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

Комментарии

Считывает один XmlNode из заданного средства чтения и помещает средство чтения на следующий узел. Этот метод создает тип XmlNode сопоставления, NodeType на котором в данный момент находится читатель. (Если средство чтения находится в начальном состоянии, ReadNode перемещает средство чтения на первый узел, а затем работает на этом узле.)

Если средство чтения находится в начале элемента, ReadNode считывает все атрибуты и все дочерние узлы, вплоть до конечного тега текущего узла. Возвращенный XmlNode объект содержит вложенное дерево, представляющее все чтение. Средство чтения размещается сразу после конечного тега.

ReadNode также может считывать атрибуты, но в этом случае средство чтения не перемещается к следующему атрибуту. Это позволяет написать следующий код C#:

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

ReadNode использует значение атрибута, однако это означает, что после вызова ReadNode атрибута XmlReader.ReadAttributeValue возвращается false.

Примечания для тех, кто наследует этот метод

Этот метод имеет требование наследования. Для переопределения ReadNode метода требуется полное доверие.

Этот метод является расширением Майкрософт для объектной модели документов (DOM).

Применяется к

См. также раздел