本文說明可以傳遞至建構函式的有效自變數,以及您用來將內容新增至元素和檔的方法。
XElement 建構函式的有效類型
查詢通常會評估為 IEnumerable<T> 或 XElementIEnumerable<T>的 XAttribute。 您可以將 XElement 或 XAttribute 物件的集合傳遞至 XElement 建構函式。 這就是為什麼將查詢結果作為內容傳遞到用於填充 XML 樹狀結構的方法和建構子會如此方便。
新增簡單內容時,可以將各種類型傳遞至此方法,包括:
- String
- Double
- Single
- Decimal
- Boolean
- DateTime
- TimeSpan
- DateTimeOffset
- 實作
Object.ToString的任何型別。 - 實作 IEnumerable<T>的任何型別。
新增複雜內容時,可以將各種類型傳遞至此方法,包括:
- XObject
- XNode
- XAttribute
- 實作 IEnumerable<T> 的任何類型
如果物件實作 IEnumerable<T>方法,則會列舉物件中的集合,並將集合中的所有專案加入至集合。 如果集合包含 XNode 或 XAttribute 物件,則會個別新增集合中的每個專案。 如果集合包含文字(或轉換成文字的物件),集合中的文字會串連並新增為單一文字節點。
如果內容 null,則不會新增任何內容。 傳遞集合時,集合中的項目可以是 null。 集合中的 null 項目不會影響樹狀結構。
加入的屬性在其包含元素內必須有唯一的名稱。
新增 XNode 或 XAttribute 物件時,如果新內容沒有父系,則物件只會附加至 XML 樹狀結構。 如果新內容已經有父節點,且屬於另一個 XML 樹狀結構,則會複製新內容,並將新複製的內容附加至 XML 樹狀結構。
XDocument 建構函式的有效類型
屬性和簡單內容無法新增至檔。
需要建立 XDocument的情況並不多。 相反地,您通常可以使用 XElement 根節點來建立 XML 樹狀結構。 除非您有建立檔的特定需求(例如,因為您必須在最上層建立處理指示和批注,或必須支援檔類型),否則使用 XElement 作為根節點通常更方便。
XDocument 建構函式的有效類型包括:
- 零或一個 XDocumentType 物件。 檔類型必須位於元素之前。
- 零或一個元素。
- 零個至多個批注。
- 零個或多個處理指令。
- 僅包含空白的零個或多個文本節點。
用於新增內容的構造函數和函式
下列方法可讓您將子內容新增至 XElement 或 XDocument:
| 方法 | 描述 |
|---|---|
| XElement | 建構一個 XElement。 |
| XDocument | 建構 XDocument。 |
| Add | 將 新增至 XElement 或 XDocument子內容的結尾。 |
| AddAfterSelf | 在 XNode之後新增內容。 |
| AddBeforeSelf | 在 XNode之前新增內容。 |
| AddFirst | 在 XContainer子內容的開頭添加內容。 |
| ReplaceAll | 取代 XElement的所有內容(子節點和屬性)。 |
| ReplaceAttributes | 將 XElement的屬性替換掉。 |
| ReplaceNodes | 使用新內容替換子節點。 |
| ReplaceWith | 以新內容取代節點。 |