Freigeben über


Lesen von Attributen

Die XmlReader-Klasse stellt verschiedene Methoden und Eigenschaften zum Lesen von Attributen bereit. Attribute befinden sich in der Regel in Elementen. Sie sind jedoch auch in XML-Deklarationen und Dokumenttypknoten zulässig.

Lesen von Attributen in Elementen

Bei Positionierung auf einem Elementknoten ermöglichen die MoveToAttribute-Methoden das Durchlaufen der Attributliste des Elements. Nach dem Aufrufen von MoveToAttribute reflektieren die Knoteneigenschaften (z. B. Name, NamespaceURI, Prefix usw.) die Eigenschaften dieses Attributs und nicht des enthaltenden Elements, zu dem es gehört.

In der folgenden Tabelle werden die Methoden und Eigenschaften beschrieben, die speziell für die Verarbeitung von Attributen entwickelt wurden.

Membername

Beschreibung

AttributeCount

Ruft die Anzahl der Attribute im Element ab.

GetAttribute

Ruft den Wert des Attributs ab.

HasAttributes

Ruft einen Wert ab, der angibt, ob der aktuelle Knoten über Attribute verfügt.

IsDefault

Ruft einen Wert ab, der angibt, ob der aktuelle Knoten ein Attribut ist, das aus dem in der DTD oder im Schema definierten Standardwert generiert wurde.

Item

Ruft den Wert des angegebenen Attributs ab.

MoveToAttribute

Wechselt zum angegebenen Attribut.

MoveToElement

Wechselt zu dem Element, das den aktuellen Attributknoten besitzt.

MoveToFirstAttribute

Wechselt zum ersten Attribut.

MoveToNextAttribute

Wechselt zum nächsten Attribut.

ReadAttributeValue

Löst die Attributwerte in einen oder mehrere Textknoten, EntityReference-Knoten oder EndEntity-Knoten auf.

Alle allgemeinen Methoden und Eigenschaften von XmlReader können auch für die Verarbeitung von Attributen verwendet werden. Beispielsweise reflektieren die Name-Eigenschaft und die Value-Eigenschaft nach dem Positionieren von XmlReader auf einem Attribut die Werte des Attributs. Sie können den Wert des Attributs auch mit einer beliebigen Read-Methode für den Inhalt abrufen.

Lesen von Attributen in anderen Knotentypen

Das häufigste Szenario ist die Verarbeitung von Attributen in Elementknoten. Attribute können auch in XML-Deklarationen und Dokumenttypdeklarationen vorkommen.

HinweisHinweis

Wenn der XmlReader auf einem Verarbeitungsanweisungsknoten positioniert ist, gibt die Value-Eigenschaft den gesamten Textinhalt zurück.Elemente im Verarbeitungsanweisungsknoten werden nicht als Attribute behandelt.Sie können mit der GetAttribute-Methode oder der MoveToAttribute-Methode nicht gelesen werden.

XML-Deklarationsknoten

Bei Positionierung auf einem XML-Deklarationsknoten werden die Informationen zu Version, Eigenständigkeit und Codierung von der Value-Eigenschaft als einzelne Zeichenfolge zurückgegeben. Bei einigen Readern können die Informationen zu Version, Eigenständigkeit und Codierung auch als Attribute verfügbar gemacht werden.

HinweisHinweis

Die durch die Create-Methode erstellten XmlReader-Objekte, die XmlTextReader-Klasse und die XmlValidatingReader-Klasse, machen die Elemente für Version, Eigenständigkeit und Codierung als Attribute verfügbar.

Dokumenttypknoten

Wenn der XmlReader auf einem Dokumenttypknoten positioniert ist, können die Werte für die Literale SYSTEM und PUBLIC mithilfe der GetAttribute-Methode und der Item-Eigenschaft zurückgegeben werden. Durch das Aufrufen von reader.GetAttribute("PUBLIC") wird beispielsweise der Wert PUBLIC zurückgegeben.

Beispiele

Im folgenden Beispiel werden alle Attribute eines Elements mithilfe der AttributeCount-Eigenschaft gelesen.

' Display all attributes.
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  Dim i As Integer
  For i = 0 To (reader.AttributeCount - 1)
    Console.WriteLine("  {0}", reader(i))
  Next i
  ' Move the reader back to the element node.
  reader.MoveToElement() 
End If
// Display all attributes.
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  for (int i = 0; i < reader.AttributeCount; i++) {
    Console.WriteLine("  {0}", reader[i]);
  }
  // Move the reader back to the element node.
  reader.MoveToElement(); 
}

Im folgenden Beispiel werden alle Attribute eines Elements mithilfe der MoveToNextAttribute-Methode in einer While-Schleife gelesen.

If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  While reader.MoveToNextAttribute()
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value)
  End While
  ' Move the reader back to the element node.
  reader.MoveToElement()
End If
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  while (reader.MoveToNextAttribute()) {
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value);
  }
  // Move the reader back to the element node.
  reader.MoveToElement();
}

Im folgenden Beispiel wird der Wert eines Attributs anhand des Namens abgerufen.

reader.ReadToFollowing("book")
Dim isbn As String = reader.GetAttribute("ISBN")
Console.WriteLine("The ISBN value: " + isbn)
reader.ReadToFollowing("book");
string isbn = reader.GetAttribute("ISBN");
Console.WriteLine("The ISBN value: " + isbn);

Siehe auch

Konzepte

Lesen von XML mit dem "XmlReader"