XmlReader.Read XmlReader.Read XmlReader.Read XmlReader.Read Method

Definition

Liest beim Überschreiben in einer abgeleiteten Klasse den nächsten Knoten aus dem Stream.When overridden in a derived class, reads the next node from the stream.

public:
 abstract bool Read();
public abstract bool Read ();
abstract member Read : unit -> bool
Public MustOverride Function Read () As Boolean

Gibt zurück

true, wenn der nächste Knoten erfolgreich gelesen wurde, andernfalls, false.true if the next node was read successfully; otherwise, false.

Ausnahmen

Beim Analysieren des XML-Codes ist ein Fehler aufgetreten.An error occurred while parsing the XML.

Eine XmlReader-Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde.An XmlReader method was called before a previous asynchronous operation finished. In diesem Fall wird InvalidOperationException mit der Meldung „Es wird bereits ein asynchroner Vorgang ausgeführt“ ausgelöst.In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Beispiele

Im folgenden Beispiel wird eine XML-Datei gelesen, und die einzelnen Knoten werden angezeigt:The following example reads an XML file and displays each of the nodes:

XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Parse;
XmlReader reader = XmlReader.Create("items.xml", settings);
  
reader.MoveToContent();
  // Parse the file and display each of the nodes.
  while (reader.Read()) {
    switch (reader.NodeType) {
      case XmlNodeType.Element:
          Console.Write("<{0}>", reader.Name);
          break;
      case XmlNodeType.Text:
          Console.Write(reader.Value);
          break;
       case XmlNodeType.CDATA:
           Console.Write("<![CDATA[{0}]]>", reader.Value);
           break;
       case XmlNodeType.ProcessingInstruction:
           Console.Write("<?{0} {1}?>", reader.Name, reader.Value);
           break;
       case XmlNodeType.Comment:
           Console.Write("<!--{0}-->", reader.Value);
           break;
       case XmlNodeType.XmlDeclaration:
           Console.Write("<?xml version='1.0'?>");
           break;
       case XmlNodeType.Document:
           break;
       case XmlNodeType.DocumentType:
           Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
           break;
       case XmlNodeType.EntityReference:
           Console.Write(reader.Name);
           break;
       case XmlNodeType.EndElement:
           Console.Write("</{0}>", reader.Name);
           break;
   } 
}
Dim settings As New XmlReaderSettings()
settings.DtdProcessing = DtdProcessing.Parse
Dim reader As XmlReader = XmlReader.Create("items.xml", settings)
reader.MoveToContent()
' Parse the file and display each of the nodes.
While reader.Read()
  Select Case reader.NodeType
    Case XmlNodeType.Element
      Console.Write("<{0}>", reader.Name)
    Case XmlNodeType.Text
      Console.Write(reader.Value)
    Case XmlNodeType.CDATA
      Console.Write("<![CDATA[{0}]]>", reader.Value)
    Case XmlNodeType.ProcessingInstruction
      Console.Write("<?{0} {1}?>", reader.Name, reader.Value)
    Case XmlNodeType.Comment
      Console.Write("<!--{0}-->", reader.Value)
    Case XmlNodeType.XmlDeclaration
      Console.Write("<?xml version='1.0'?>")
    Case XmlNodeType.Document
    Case XmlNodeType.DocumentType
      Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value)
    Case XmlNodeType.EntityReference
      Console.Write(reader.Name)
    Case XmlNodeType.EndElement
      Console.Write("</{0}>", reader.Name)
  End Select
End While

Im Beispiel wird die items.xml Datei verwendet.The sample uses the items.xml file.

<?xml version="1.0"?>
<!-- This is a sample XML document -->
<!DOCTYPE Items [<!ENTITY number "123">]>
<Items>
  <Item>Test with an entity: &number;</Item>
  <Item>Test with a child element <more/> stuff</Item>
  <Item>Test with a CDATA section <![CDATA[<456>]]> def</Item>
  <Item>Test with a char entity: &#65;</Item>
  <!-- Fourteen chars in this element.-->
  <Item>1234567890ABCD</Item>
</Items>

Ausgabe:Output:

<Item>Test with an entity: 123</Item><Item>Test with a child element <more> stuff</Item><Item>Test with a CDATA section <![CDATA[<456>]]> def</Item><Item>Test with a char entity: A</Item><!-- Fourteen chars in this element.--><Item>1234567890ABCD</Item></Items>

Hinweise

Wenn ein XmlReader erstmalig erstellt und initialisiert wird, sind keine Informationen verfügbar.When an XmlReader is first created and initialized, there is no information available. Zum Lesen des Read ersten Knotens muss aufgerufen werden.You must call Read to read the first node. Mit Read der-Methode wird der Zustand des XML-Readers ReadState.Initial so festgelegt, dass die XML-Datei nacheinander initiiert und durchlaufen wird, bis das Ende der Datei erreicht wird false. an diesem Punkt gibt die Methode den Wert zurück.The Read method sets the state of the XML reader to initiate ReadState.Initial and moves through the XML file sequentially until it reaches the end of the file, at which point the method returns a value of false.

Diese Methode erfordert mindestens vier Bytes aus dem Datenstrom, um mit der Verarbeitung zu beginnen.This method requires at least four bytes from the data stream in order to begin parsing. Wenn weniger als vier Bytes zurückgegeben werden und keine weiteren Daten im Stream vorhanden sind, gibt die Methode falsezurück.If fewer than four bytes are returned and there is no more data in the stream, the method returns false. Wenn im Stream weitere Daten vorhanden sind, blockiert die Methode die Verarbeitung bis zum Empfang des vierten bytes.If there is more data in the stream, the method will block parsing until receipt of the fourth byte.

Die asynchrone Version dieser Methode finden ReadAsyncSie unter.For the asynchronous version of this method, see ReadAsync.

Gilt für: