Sdílet prostřednictvím


XmlValidatingReader.ReadString Metoda

Definice

Čte obsah elementu nebo textového uzlu jako řetězec.

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

Návraty

Obsah elementu nebo textového uzlu. Může se jednat o prázdný řetězec, pokud je čtečka umístěna na něčem jiném než na elementu nebo textovém uzlu nebo pokud v aktuálním kontextu neexistuje žádný další textový obsah, který by se mohl vrátit.

Příklady

Následující příklad zobrazí textový obsah jednotlivých prvků.

#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

V příkladu se jako vstup používá soubor elems.xml, .

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

Poznámky

Textovým uzlem může být buď prvek, nebo textový uzel atributu.

Poznámka

Třída XmlValidatingReader je zastaralá v rozhraní .NET Framework 2.0. Ověřovací instanci můžete vytvořit XmlReader pomocí XmlReaderSettings třídy a Create metody. Další informace najdete v části Poznámky na XmlReader referenční stránce.

Je-li umístěna na elementu, ReadString zřetězí všechny typy uzlů oddílů, významných prázdných mezer, prázdných znaků a CDATA a vrátí zřetězená data jako obsah elementu. Čtečka se zastaví, když se narazí na jakékoli revize, včetně komentářů a pokynů ke zpracování. K tomu může dojít v modelu smíšeného obsahu nebo při čtení koncové značky elementu.

Pokud je umístěn na textovém uzlu, ReadString provede stejné zřetězení z textového uzlu do koncové značky elementu. Pokud je čtečka umístěna na textovém uzlu atributu, ReadString má stejné funkce, jako kdyby byl čtenář umístěn na počáteční značce elementu. Vrátí všechny zřetězené textové uzly elementu.

Vlastnost EntityHandling určuje, jak ReadString funguje následujícím způsobem:

Hodnota Popis
ExpandEntities Vrátí rozbalené znaky a obecné entity. Tato možnost je výchozí.
Rozbalitcharentity Vrátí textový obsah, ale nezahrnuje obecný odkaz na entitu. To znamená, že obecná entita způsobí zastavení readstringu. Pokud chcete přejít na odkaz na entitu, musíte volat Read .

Platí pro

Viz také