Freigeben über


XmlValidatingReader.ReadString Methode

Definition

Liest den Inhalt eines Element- oder Textknotens als Zeichenfolge.

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

Gibt zurück

Der Inhalt des Elementknotens oder Textknotens. Dies kann eine leere Zeichenfolge sein, wenn der Reader auf einem anderen Knotentyp als einem Element- oder Textknoten positioniert ist oder wenn im aktuellen Kontext kein weiterer Textinhalt zurückgegeben werden kann.

Beispiele

Im folgenden Beispiel wird der Textinhalt der einzelnen Elemente angezeigt.

#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

Im Beispiel wird die Datei elems.xmlals Eingabe verwendet.

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

Hinweise

Der Textknoten kann entweder ein Elementknoten oder ein Attributtextknoten sein.

Hinweis

Die XmlValidatingReader -Klasse ist in .NET Framework 2.0 veraltet. Sie können eine Validierungsinstanz erstellen, XmlReader indem Sie die XmlReaderSettings -Klasse und die Create -Methode verwenden. Weitere Informationen finden Sie im Abschnitt Hinweise unter der XmlReader Referenzseite.

Wenn sie auf einem Element positioniert ist, ReadString verkettet alle Text-, signifikanten Leerraum-, Leerraum- und CDATA-Abschnittsknotentypen zusammen und gibt die verketteten Daten als Elementinhalt zurück. Der Reader wird beendet, wenn Markup gefunden wird, einschließlich Kommentaren und Verarbeitungsanweisungen. Dies könnte in einem Modell mit gemischtem Inhalt vorkommen oder wenn das Endtag eines Elements gelesen wird.

Wenn sie auf einem Textknoten positioniert ist, ReadString führt die gleiche Verkettung zwischen dem Textknoten und dem Elementendtag aus. Wenn der Reader auf einem Attributtextknoten positioniert ist, verfügt ReadString über dieselben Funktionen wie bei einer Positionierung des Readers auf dem Starttag eines Elements. Alle verketteten Elementtextknoten werden zurückgegeben.

Die EntityHandling -Eigenschaft bestimmt die ReadString Funktionsweise wie folgt:

Wert Beschreibung
ExpandEntities Gibt erweiterte Zeichen und allgemeine Entitäten zurück. Dies ist die Standardoption.
ExpandCharEntities Gibt den Textinhalt bis zu zurück, ohne einen allgemeinen Entitätsverweis einzuschließt. Dies bedeutet, dass eine allgemeine Entität dazu führt, dass ReadString beendet wird. Sie müssen aufrufen Read , um den Entitätsverweis zu durchlaufen.

Gilt für:

Weitere Informationen