讀取屬性
更新: November 2007
XmlReader 類別提供讀取屬性 (Attribute) 的各種方法及屬性 (Property)。屬性最常見於項目上。不過,在 XML 宣告及文件型別節點上也允許屬性。
讀取項目上的屬性
如果置於項目節點上,MoveToAttribute 方法可讓您檢視整個項目屬性清單。呼叫 MoveToAttribute 之後,節點屬性(如 Name、NamespaceURI、Prefix 等) 會反映該屬性 (Attribute) 的屬性 (Property),而不是其所屬之包含項目的屬性。
下表說明專門設計用於處理屬性 (Attribute) 的方法及屬性 (Property)。
成員名稱 |
說明 |
---|---|
取得項目上的屬性數目。 |
|
取得屬性值。 |
|
取得值,表示目前節點是否具有任何屬性。 |
|
取得值,表示目前節點是否是產生自 DTD 或結構描述中定義之預設值的屬性。 |
|
取得指定屬性的值。 |
|
移至指定屬性。 |
|
移至擁有目前屬性節點的項目。 |
|
移至第一個屬性。 |
|
移至下一個屬性。 |
|
將屬性值剖析到一或多個 Text、EntityReference 或 EndEntity 節點中。 |
任何一般 XmlReader 方法和屬性都可用於處理屬性 (Attribute)。例如,將 XmlReader 置於屬性 (Attribute) 上之後,Name 及 Value 屬性會反映屬性 (Attribute) 的值。您還可使用任何內容 Read 方法,以取得屬性的值。
讀取其他節點型別上的屬性
處理項目節點上的屬性是最常見的案例。屬性還可存在於 XML 宣告及文件型別宣告上。
注意事項: |
---|
將 XmlReader 置於處理指示節點時,Value 屬性會傳回全部文字內容。處理指示節點中的項目不會被視為屬性。它們無法使用 GetAttribute 或 MoveToAttribute 方法讀取。 |
XML 宣告節點
當置於 XML 宣告節點時,Value 屬性會以單一字串形式傳回版本、獨立及編碼資訊。在某些讀取器上,版本、編碼及獨立資訊也可公開為屬性。
注意事項: |
---|
Create 方法、XmlTextReader 及 XmlValidatingReader 類別建立的 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);