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

本文說明可以傳遞給用於將內容新增至元素和文件之建構函式和方法的有效引數。

XElement 建構函式的有效型別

查詢通常會評估成 IEnumerable<T>XElementIEnumerable<T>XAttribute。 您可以將 XElementXAttribute 物件的集合傳遞給 XElement 建構函式。 因此,將查詢的結果當做內容傳入您用來填入 XML 樹狀結構的方法和建構函式會相當方便。

新增簡單內容時,可以將各種型別傳遞到這個方法,包括:

新增複雜內容時,可以將各種型別傳遞到這個方法,包括:

如果物件實作 IEnumerable<T>,系統列舉物件中的集合,並加入集合中的所有項目。 如果集合包含 XNodeXAttribute 物件,系統會個別加入集合中的每個項目。 如果集合包含文字 (或轉換為文字的物件),集合中的文字會遭到串連,並加入為單一文字節點。

如果內容為 null,不會加入任何項目。 傳遞集合時,集合中的項目可以為 null。 集合中的 null 項目對於樹狀結構沒有任何影響。

加入的屬性在其包含的項目中必須擁有一個唯一的名稱。

加入 XNodeXAttribute 物件時,如果新內容沒有父代,則物件只會附加到 XML 樹狀結構。 如果新內容已經成為父代,或是其他 XML 樹狀結構的一部分,則會複製新內容,而且新複製的內容會附加到 XML 樹狀結構。

XDocument 建構函式的有效型別

屬性和簡單的內容無法加入到文件中。

需要您建立 XDocument 的情節並不多。 不過,您通常可以使用 XElement 根節點來建立 XML 樹狀結構。 除非您有建立文件的特定需求 (例如,因為您必須在頂層建立處理指示與註解,或者您必須支援文件型別),否則使用 XElement 做為您的根節點通常更方便。

XDocument 建構函式的有效型別包括下列項目:

  • 零或一個 XDocumentType 物件。 文件型別必須在項目之前。
  • 零或一個項目。
  • 零或多個註解。
  • 零或多個處理指示。
  • 只包含一個空白字元的零或多個節點。

用於新增內容的建構函式和函式

下列方法可讓您將子內容加入到 XElementXDocument

方法 描述
XElement 建構 XElement
XDocument 建構 XDocument
Add 加入到 XElementXDocument 之子內容的結尾。
AddAfterSelf 將內容加入到 XNode 之後。
AddBeforeSelf 將內容加入到 XNode 之前。
AddFirst 將內容加入到 XContainer 之子內容的開頭。
ReplaceAll 取代 XElement 的所有內容 (子節點和屬性)。
ReplaceAttributes 取代 XElement 的屬性。
ReplaceNodes 以新的內容取代子節點。
ReplaceWith 以新內容取代節點。

另請參閱