XElement 和 XDocument 物件的有效內容 (LINQ to XML)

本文說明可以傳遞至建構函式的有效自變數,以及您用來將內容新增至元素和檔的方法。

XElement 建構函式的有效類型

查詢通常會評估為 IEnumerable<T> 或 XElementIEnumerable<T>的 XAttribute。 您可以將 XElement 或 XAttribute 物件的集合傳遞至 XElement 建構函式。 這就是為什麼將查詢結果作為內容傳遞到用於填充 XML 樹狀結構的方法和建構子會如此方便。

新增簡單內容時,可以將各種類型傳遞至此方法,包括:

新增複雜內容時,可以將各種類型傳遞至此方法,包括:

如果物件實作 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 以新內容取代節點。

另請參閱