Share via


XmlValidatingReader.ReadString Método

Definição

Lê o conteúdo de um elemento ou nó de texto como uma cadeia de caracteres.

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

Retornos

O conteúdo do nó de elemento ou de texto. Essa poderá ser uma cadeia de caracteres vazia se o leitor estiver posicionado em algo diferente de um elemento ou nó de texto ou, se não houver nenhum outro conteúdo de texto para retornar no contexto atual.

Exemplos

O exemplo a seguir exibe o conteúdo de texto de cada um dos elementos.

#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

O exemplo usa o arquivo , elems.xml, como entrada.

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

Comentários

O nó de texto pode ser um elemento ou um nó de texto do atributo.

Observação

A XmlValidatingReader classe está obsoleta no .NET Framework 2.0. Você pode criar uma instância de validação XmlReader usando a XmlReaderSettings classe e o Create método . Para obter mais informações, consulte a seção de Comentários da página de referência XmlReader.

Se posicionado em um elemento, ReadString concatena todos os tipos de texto, espaço em branco significativo, espaço em branco e nó de seção CDATA juntos e retorna os dados concatenados como o conteúdo do elemento. O leitor para quando qualquer marcação é encontrada, incluindo comentários e instruções de processamento. Isso pode ocorrer em um modelo de conteúdo misto ou quando uma marca de fim de elemento for lida.

Se posicionado em um nó de texto, ReadString executa a mesma concatenação do nó de texto para a marca de extremidade do elemento. Se o leitor for posicionado em um nó de texto de atributo, o ReadString terá a mesma funcionalidade de um leitor posicionado na marca de início de elemento. Ele retornará todos os nós de texto de elemento concatenados.

A EntityHandling propriedade determina como ReadString funciona da seguinte maneira:

Valor Descrição
Expandentities Retorna caracteres expandidos e entidades gerais. Esse é o padrão.
Expandcharentities Retorna o conteúdo do texto até, mas não incluindo uma referência de entidade geral. Isso significa que uma entidade geral faz com que ReadString pare. Você deve chamar Read para percorrer a referência de entidade.

Aplica-se a

Confira também