XmlValidatingReader.ReadString Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Legge il contenuto di un nodo elemento o testo come stringa.
public:
override System::String ^ ReadString();
public override string ReadString ();
override this.ReadString : unit -> string
Public Overrides Function ReadString () As String
Restituisce
Contenuto del nodo elemento o testo. Può essere una stringa vuota se il lettore non è posizionato su un nodo elemento o testo oppure se non ci sono più contenuti di testo da restituire nel contesto corrente.
Esempio
Nell'esempio seguente viene visualizzato il contenuto di testo di ognuno degli elementi.
#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
Nell'esempio viene usato il file , elems.xml
, come input.
<book>
<title>Pride And Prejudice</title>
<price>19.95</price>
<misc/>
</book>
Commenti
Il nodo di testo può essere anche rappresentato da un nodo elemento o da un nodo testo di un attributo.
Nota
La XmlValidatingReader classe è obsoleta in .NET Framework 2.0. È possibile creare un'istanza di XmlReader convalida usando la XmlReaderSettings classe e il Create metodo . Per altre informazioni, vedere la sezione Note della pagina di riferimento XmlReader.
Se posizionato su un elemento, ReadString
concatena tutti i tipi di testo, spazi vuoti significativi, spazi vuoti e nodi di sezione CDATA e restituisce i dati concatenati come contenuto dell'elemento. Il lettore si arresta quando viene rilevato un markup, inclusi i commenti e le istruzioni di elaborazione. Questa situazione può verificarsi in un modello a contenuto misto oppure durante la lettura di un tag di fine elemento.
Se posizionato in un nodo di testo, ReadString
esegue la stessa concatenazione dal nodo di testo al tag finale dell'elemento. Se il lettore è posizionato in corrispondenza di un nodo di tipo text di un attributo, il metodo ReadString
funzionerà come quando il lettore è posizionato in corrispondenza del tag di inizio dell'elemento, restituendo tutti i nodi di tipo text dell'elemento concatenati.
La EntityHandling proprietà determina il funzionamento ReadString
come segue:
Valore | Descrizione |
---|---|
ExpandEntities | Restituisce caratteri espansi ed entità generali. Questo è il valore predefinito. |
ExpandCharEntities | Restituisce il contenuto di testo fino a , ma non include un riferimento all'entità generale. Ciò significa che un'entità generale causa l'arresto di ReadString. È necessario chiamare Read per eseguire il passaggio del riferimento all'entità. |