XmlValidatingReader.ReadString Méthode

Définition

Lit le contenu d'un nœud d'élément ou de texte sous forme de chaîne.

public:
 override System::String ^ ReadString();
public override string ReadString ();
override this.ReadString : unit -> string
Public Overrides Function ReadString () As String

Retours

String

Contenu du nœud d'élément ou de texte. Il peut s'agir d'une chaîne vide si le lecteur est placé sur autre chose qu'un nœud d'élément ou de texte, ou s'il n'existe plus de texte à retourner dans le contexte actuel.

Exemples

L’exemple suivant affiche le contenu texte de chacun des éléments.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   XmlTextReader^ txtreader = nullptr;
   XmlValidatingReader^ reader = nullptr;
   try
   {
      
      //Implement the readers.
      txtreader = gcnew XmlTextReader( "elems.xml" );
      reader = gcnew XmlValidatingReader( txtreader );
      
      //Parse the XML and display the text content of each of the elements.
      while ( reader->Read() )
      {
         if ( reader->IsStartElement() )
         {
            if ( reader->IsEmptyElement )
                        Console::WriteLine( "<{0}/>", reader->Name );
            else
            {
               Console::Write( "<{0}> ", reader->Name );
               reader->Read(); //Read the start tag.
               if ( reader->IsStartElement() )
                              
               //Handle nested elements.
               Console::Write( "\r\n<{0}>", reader->Name );
               Console::WriteLine( reader->ReadString() ); //Read the text content of the element.
            }
         }
      }
   }
   finally
   {
      if ( reader != nullptr )
            reader->Close();
   }

}

using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    XmlTextReader txtreader = null;
    XmlValidatingReader reader = null;

    try
    {
       //Implement the readers.
       txtreader = new XmlTextReader("elems.xml");
       reader = new XmlValidatingReader(txtreader);

       //Parse the XML and display the text content of each of the elements.
       while (reader.Read()){
         if (reader.IsStartElement()){
           if (reader.IsEmptyElement)
                    {
                        Console.WriteLine("<{0}/>", reader.Name);
                    }
                    else
                    {
               Console.Write("<{0}> ", reader.Name);
               reader.Read(); //Read the start tag.
               if (reader.IsStartElement())  //Handle nested elements.
                   Console.Write("\r\n<{0}>", reader.Name);
               Console.WriteLine(reader.ReadString());  //Read the text content of the element.
           }
         }
       }
     }

     finally
     {
        if (reader != null)
          reader.Close();
      }
  }
} // End class
Imports System.IO
Imports System.Xml

Public Class Sample
   
   Public Shared Sub Main()
      Dim txtreader As XmlTextReader = Nothing
      Dim reader As XmlValidatingReader = Nothing
      
      Try
         'Implement the readers.
         txtreader = New XmlTextReader("elems.xml")
         reader = New XmlValidatingReader(txtreader)
         
         'Parse the XML and display the text content of each of the elements.
         While reader.Read()
            If reader.IsStartElement() Then
               If reader.IsEmptyElement Then
                  Console.WriteLine("<{0}/>", reader.Name)
               Else
                  Console.Write("<{0}> ", reader.Name)
                  reader.Read() 'Read the start tag.
                  If (reader.IsStartElement())  'Handle nested elements.
                    Console.WriteLine()
                    Console.Write("<{0}>", reader.Name)
                  End If
                  Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
               End If
            End If
         End While      
      
      Finally
         If Not (reader Is Nothing) Then
            reader.Close()
         End If
      End Try
   End Sub
End Class

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

<book>
  <title>Pride And Prejudice</title>
  <price>19.95</price>
  <misc/>
</book>

Remarques

Le nœud de texte peut être un nœud de texte d'élément ou d'attribut.

Notes

La XmlValidatingReader classe est obsolète dans .NET Framework 2.0. Vous pouvez créer une instance de validation à l’aide de XmlReader la XmlReaderSettings classe et de la Create méthode. Pour plus d'informations, consultez la section Notes de la page de référence XmlReader.

Si elle est positionnée sur un élément, ReadString concatène tout le texte, l’espace blanc significatif, l’espace blanc et les types de nœuds de section CDATA ensemble et retourne les données concaténées en tant que contenu de l’élément. Le lecteur s’arrête quand un balisage est rencontré, y compris les commentaires et les instructions de traitement. Cela peut se produire dans un modèle de contenu mixte ou lorsqu'une balise de fin d'élément est lue.

Si elle est positionnée sur un nœud de texte, ReadString effectue la même concaténation du nœud de texte vers la balise de fin de l’élément. Si le lecteur est positionné sur un nœud de texte d’attribut, la méthode ReadString se comporte de la même fonction que si le lecteur était positionné sur l’étiquette de début d’élément. Il retourne tous les nœuds de texte d'élément concaténés.

La EntityHandling propriété détermine le ReadString fonctionnement suivant :

Valeur Description
ExpandEntities Retourne un caractère développé et des entités générales. Il s’agit de la valeur par défaut.
ExpandCharEntities Retourne le contenu texte jusqu’à ce qu’il n’inclue pas de référence d’entité générale. Cela signifie qu’une entité générale entraîne l’arrêt de ReadString. Vous devez appeler Read pour passer à pas sur la référence d’entité.

S’applique à

Voir aussi