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
Konzepte
Lesen von XML mit dem "XmlReader"