Aktuelle Knotenposition im "XmlReader"

Die XmlReader-Klasse bietet Vorwärtszugriff auf einen XML-Datenstream oder eine XML-Datei.Der aktuelle Knoten ist der XML-Knoten, auf dem sich der Reader gerade befindet.Alle Methoden, die aufgerufen werden, und alle Aktionen, die ausgeführt werden, beziehen sich auf diesen aktuellen Knoten. Alle Eigenschaften, die abgerufen werden, geben den Wert des aktuellen Knotens wieder.

Der Reader wird durch die Aufrufe einer der Read-Methoden weitergegeben.Durch wiederholtes Aufrufen der Read-Methode wird der Reader zum nächsten Knoten verschoben.Solche Aufrufe werden normalerweise in einer While-Schleife ausgeführt.

Im folgenden Beispiel wird dargestellt, wie Sie durch einen Stream navigieren, um den aktuellen Knotentyp zu bestimmen.

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
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;
   } 
}

Die in der XmlReader-Klasse verfügbaren Eigenschaften können nicht auf jeden Knotentyp angewendet werden.Die IsEmptyElement-Eigenschaft gibt beispielsweise den Wert true zurück, wenn es sich bei dem aktuellen Knoten um ein Element handelt und dieser mit einem normalen Schrägstrich ("/>") endet.Wenn diese Eigenschaft bei einem anderen Knotentyp aufgerufen wird, wird der Wert false zurückgegeben, da diese Eigenschaft nicht für andere Knotentypen anwendbar ist.Eine Liste aller Knotentypen finden Sie unter XML-Knotentypen.

Siehe auch

Referenz

XmlReader

Konzepte

Lesen von XML mit dem "XmlReader"

Weitere Ressourcen

Verwenden der XmlReader-Klasse