Partager via


XmlDocument.ReadNode(XmlReader) Méthode

Définition

Crée un XmlNode objet basé sur les informations contenues dans le XmlReader. Le lecteur doit être positionné sur un nœud ou un attribut.

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

Paramètres

reader
XmlReader

Source XML.

Retours

Nouveau XmlNode ou null s’il n’existe plus de nœuds.

Exceptions

Le lecteur est positionné sur un type de nœud qui ne se traduit pas en nœud DOM valide (par exemple, EndElement ou EndEntity).

Exemples

L’exemple suivant utilise ReadNode pour créer un nœud, puis insère le nouveau nœud dans le document.

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

L’exemple utilise le fichier, cd.xmlcomme entrée.


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

Remarques

Lit l’un XmlNode du lecteur donné et positionne le lecteur sur le nœud suivant. Cette méthode crée le type de XmlNode correspondance NodeType sur lequel le lecteur est actuellement positionné. (Si le lecteur est dans l’état initial, ReadNode avance le lecteur vers le premier nœud, puis fonctionne sur ce nœud.)

Si le lecteur est positionné au début d’un élément, ReadNode lit tous les attributs et tous les nœuds enfants, jusqu’à la balise de fin du nœud actuel et y compris. L’arborescence XmlNode retournée contient la sous-arborescence représentant tout ce qui est lu. Le lecteur est positionné immédiatement après la balise de fin.

ReadNode peut également lire les attributs, mais dans ce cas, il n’avance pas le lecteur vers l’attribut suivant. Cela vous permet d’écrire le code C# suivant :

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

ReadNode consomme toutefois la valeur d’attribut, ce qui signifie qu’après l’appel ReadNode sur un attribut, XmlReader.ReadAttributeValue retourne false.

Notes pour les héritiers

Cette méthode a une demande d’héritage. La confiance totale est requise pour remplacer la ReadNode méthode.

Cette méthode est une extension Microsoft au modèle dom (Document Object Model).

S’applique à

Voir aussi