XmlValidatingReader.ReadString Metoda

Definicja

Odczytuje zawartość elementu lub węzła tekstowego jako ciąg.Reads the contents of an element or text node as a string.

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

Zwraca

String

Zawartość węzła elementu lub tekstu.The contents of the element or text node. Może to być pusty ciąg, jeśli czytnik jest umieszczony w innym miejscu niż element lub węzeł tekstowy, lub jeśli nie ma więcej zawartości tekstowej do zwrócenia w bieżącym kontekście.This can be an empty string if the reader is positioned on something other than an element or text node, or if there is no more text content to return in the current context.


Węzłem tekstu może być element lub węzeł tekstu atrybutu.The text node can be either an element or an attribute text node.

Przykłady

Poniższy przykład wyświetla zawartość tekstową każdego z elementów.The following example displays the text content of each of the elements.

#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

W przykładzie jest użyty plik elems.xmljako dane wejściowe.The example uses the file, elems.xml, as input.

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

Uwagi

Uwaga

Klasa XmlValidatingReader jest przestarzała w .NET Framework 2.0.NET Framework 2.0.The XmlValidatingReader class is obsolete in .NET Framework 2.0.NET Framework 2.0. Można utworzyć sprawdzanie poprawności wystąpienia XmlReader przy użyciu klasy XmlReaderSettings i metody Create.You can create a validating XmlReader instance by using the XmlReaderSettings class and the Create method. Aby uzyskać więcej informacji, zobacz sekcję uwagi na stronie odniesienia XmlReader.For more information, see the Remarks section of the XmlReader reference page.

W przypadku położenia dla elementu ReadString łączą cały tekst, znaczący biały znak, odstępy i typy węzłów sekcji CDATA i zwraca dane połączone jako zawartość elementu.If positioned on an element, ReadString concatenates all text, significant white space, white space, and CDATA section node types together and returns the concatenated data as the element content. Czytnik jest zatrzymywany po napotkaniu dowolnego znacznika, w tym komentarzy i instrukcji przetwarzania.The reader stops when any markup is encountered, including comments and processing instructions. Może to nastąpić w modelu zawartości mieszanej lub gdy odczytywany jest tag końcowy elementu.This could occur in a mixed content model, or when an element end tag is read.

W przypadku położenia w węźle tekstowym ReadString wykonuje takie samo łączenie z węzła tekstowego do znacznika końcowego elementu.If positioned on a text node, ReadString performs the same concatenation from the text node to the element end tag. Jeśli czytnik znajduje się w węźle tekstu atrybutu, ReadString ma te same funkcje, co jeśli czytnik był ustawiony w tagu początkowym elementu.If the reader is positioned on an attribute text node, ReadString has the same functionality as if the reader were position on the element start tag. Zwraca wszystkie połączone węzły tekstu elementu.It returns all the concatenated element text nodes.

Właściwość EntityHandling określa, jak ReadString działa w następujący sposób:The EntityHandling property determines how ReadString works as follows:

WartośćValue OpisDescription
ExpandEntitiesExpandEntities Zwraca rozwinięty znak i ogólne jednostki.Returns expanded character and general entities. Domyślnie włączone.This is the default.
ExpandCharEntitiesExpandCharEntities Zwraca zawartość tekstową do, ale nie łącznie z ogólnym odwołaniem do jednostki.Returns the text content up to but not including a general entity reference. Oznacza to, że ogólna jednostka powoduje zatrzymanie ReadString.This means a general entity causes ReadString to stop. Musisz wywołać Read, aby przekroczyć odwołanie do jednostki.You must call Read to step over the entity reference.

Dotyczy

Zobacz też