共用方式為


讀取屬性

更新: November 2007

XmlReader 類別提供讀取屬性 (Attribute) 的各種方法及屬性 (Property)。屬性最常見於項目上。不過,在 XML 宣告及文件型別節點上也允許屬性。

讀取項目上的屬性

如果置於項目節點上,MoveToAttribute 方法可讓您檢視整個項目屬性清單。呼叫 MoveToAttribute 之後,節點屬性(如 NameNamespaceURIPrefix 等) 會反映該屬性 (Attribute) 的屬性 (Property),而不是其所屬之包含項目的屬性。

下表說明專門設計用於處理屬性 (Attribute) 的方法及屬性 (Property)。

成員名稱

說明

AttributeCount

取得項目上的屬性數目。

GetAttribute

取得屬性值。

HasAttributes

取得值,表示目前節點是否具有任何屬性。

IsDefault

取得值,表示目前節點是否是產生自 DTD 或結構描述中定義之預設值的屬性。

Item

取得指定屬性的值。

MoveToAttribute

移至指定屬性。

MoveToElement

移至擁有目前屬性節點的項目。

MoveToFirstAttribute

移至第一個屬性。

MoveToNextAttribute

移至下一個屬性。

ReadAttributeValue

將屬性值剖析到一或多個 Text、EntityReference 或 EndEntity 節點中。

任何一般 XmlReader 方法和屬性都可用於處理屬性 (Attribute)。例如,將 XmlReader 置於屬性 (Attribute) 上之後,NameValue 屬性會反映屬性 (Attribute) 的值。您還可使用任何內容 Read 方法,以取得屬性的值。

讀取其他節點型別上的屬性

處理項目節點上的屬性是最常見的案例。屬性還可存在於 XML 宣告及文件型別宣告上。

注意事項:

XmlReader 置於處理指示節點時,Value 屬性會傳回全部文字內容。處理指示節點中的項目不會被視為屬性。它們無法使用 GetAttributeMoveToAttribute 方法讀取。

XML 宣告節點

當置於 XML 宣告節點時,Value 屬性會以單一字串形式傳回版本、獨立及編碼資訊。在某些讀取器上,版本、編碼及獨立資訊也可公開為屬性。

注意事項:

Create 方法、XmlTextReaderXmlValidatingReader 類別建立的 XmlReader 物件會將版本、獨立及編碼項目公開為屬性。

文件型別節點

XmlReader 置於文件型別節點時,GetAttribute 方法及 Item 屬性可用於傳回 SYSTEM 及 PUBLIC 常值的值。例如,呼叫 reader.GetAttribute("PUBLIC") 會傳回 PUBLIC 值。

範例

下列範例會使用 AttributeCount 屬性 (Property),讀取項目上的所有屬性 (Attribute)。

' 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(); 
}

下列範例會在 While 迴圈中使用 MoveToNextAttribute 方法,讀取項目上的所有屬性。

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

下列範例會依名稱取得屬性的值。

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

請參閱

概念

使用 XmlReader 讀取 XML