LINQ to XML:元素屬性

XML文件內容的操作,除了元素本身,另外一項重點是屬性的設定,屬性本身用來指定元素的特性,在LINQ toXML,XML元素本身,可能會有一組以上的關聯屬性,用來表示元素的某些特性,這些屬性以 name/value 型式存在,System.Xml.Linq 命名空間提供了一個XAttribute類別,支援屬性的相關操作。以下是一個典型的XML元素與其中所包含的屬性:

<Root
Att1="Value1" Att2="Value1"
Att3=" Value1" Att4=" Value1"
/>

其中的Att1、Att2等為屬性名稱,而緊接著「=」後面的字串則是對應的屬性值,每一個XML元素,也就是XElement類別的物件實體,均包含了由一組以上的屬性所構成的屬性清單,每一組屬性中的name代表XML元素中的唯一識別名稱。建立全新的屬性只要透過屬性建構式的引用即可,你可以將另外一個現有的XAttribute物件,當作建構式的參數指定給它,或是自行定義名稱與值的配對組合,XAttribute的建構式定義如下:

public XAttribute(
XName name,
Object value
)
public XAttribute(
XAttribute other
)

XAttribute的建構式相當容易理解,它直接建立一個可用的XAttribute實體物件,往後透過這個物件便能直接操作XML元素的屬性。
當我們要取得一個指定的Attribute屬性物件,只要引用此Attribute方法即可,例如以下的程式碼:

XAttribute att = xmlTree.Attribute("Att");

此方法回傳一個指定名稱Att的XAttribute物件。

如果想要取得元素的屬性集合,可以考慮引用另外一個方法Attributes,它有兩種版本,列舉如下:

public IEnumerable<XAttribute> Attributes()
public IEnumerable<XAttribute> Attributes(
XName name
)

第一種版本的方法,以IEnumerable集合型態物件,封裝元素中的屬性將其回傳,這些屬性在集合中以其被加入元素中的順序作排列,第二種版本的方法,接受一個XName型別的物件參數,它用來篩選所要回傳的屬性,只有符合這個參數的屬性會被儲存於集合中回傳。元素的操作與屬性是相同的,而Attributes這個方法所回傳的亦是一個IEnumerable物件,而其泛型參數為XAttribute型別。

元素的操作與屬性是相同的,而Attributes這個方法所回傳的亦是一個IEnumerable物件,而其泛型參數為XAttribute型別。
如果想要在元素當中新增或是修改屬性, 可以直接引用 XElement 的 SetAttributeValue 方法,定義如下:

public void SetAttributeValue(
XName name,
Object value
)

透過這個方法,我們可以為元素新增、修改或是移除指定的屬性。如果僅僅只是要單純的移除屬性,RemoveAttributes這個方法可以讓你達到這個目的,直接對其進行引用即可,列舉如下:

public void RemoveAttributes()

LINQ to XML:XDocument & XElement 簡述 
LINQ to XML:關於 LINQ to XML 
LINQ to XML:XML命名空間與元素識別名稱 
LINQ to XML:XML內容元素 
LINQ to XML:XML文件載入與輸出 
LINQ to XML:載入 XML 內容 
LINQ to XML:輸出XML文件 
LINQ to XML:列舉XML元素 
LINQ to XML:存取特定XML元素 
LINQ to XML:新增XML元素 
LINQ to XML:元素屬性 
LINQ to XML:利用LIQN萃取XML文件內容元素 
LINQ to XML:元素存取與轉換 






沒有留言: