共用方式為


將現有節點從一個文件複製到另一個文件

ImportNode 方法是一種機制,藉由這個機制,節點或整個節點樹狀子目錄會從一個 XmlDocument 複製到另一個。 從呼叫傳回的節點是來自來源文件的節點複本,包括屬性值、節點名稱、節點型別和所有與命名空間相關的屬性,例如前置詞、區域名稱和命名空間統一資源識別元 (URI)。 來源文件不會變更。 在匯入節點之後,您仍然必須使用用於插入節點的其中一種方法將它加入至樹狀結構。

當節點附加於它的新文件時,新文件即擁有節點。 原因是在建立時,每個節點都會有自己的文件,即使節點是建立在不同的文件片段中也一樣。 這是 XML 文件物件模型 (DOM) 的必要需求,XmlDocument 類別上的原廠建立設計會加以強制執行。 例如,CreateElement 即為建立新節點的方式之一。

根據匯入節點的節點型別和 deep 參數的值,其他的資訊會適當的複製。 若 XML 或 HTML 來源的片段是從某份文件複製到另一份文件,則這個方法會嘗試反映預期的行為,這表示對於 XML,這兩份文件可能具有不同的文件類型定義 (DTD)。

下列表格說明可以匯入之每種節點型別的特定行為。

節點類型 deep 參數為 true deep 參數為 false
XmlAttribute Specified 在 XmlAttribute 上會設為 true。 來源 XmlAttribute 的子代會遞迴匯入,而且產生的節點會重組以形成對應的樹狀子目錄。 deep 參數不會套用至 XmlAttribute 節點,因為它們在匯入時一定會帶著它們的子節點。
XmlCDataSection 複製節點,包含其資料。 複製節點,包含其資料。
XmlComment 複製節點,包含其資料。 複製節點,包含其資料。
XmlDocumentFragment 來源節點的子代會遞迴匯入,而且產生的節點會重組以形成對應的樹狀子目錄。 會建立空白的 XmlDocumentFragment
XmlDocumentType 複製節點,包含其 data.* 複製節點,包含其 data.*
XmlElement 來源項目的子代會遞迴匯入,而且產生的節點會重組以形成對應的樹狀子目錄。 注意:不會複製預設屬性。 如果要匯入的文件定義這個項目名稱的預設屬性,就會指派這些屬性。 來源項目的指定屬性節點會匯入,而且產生的 XmlAttribute 節點會附加至新項目。 不會複製子代節點。 注意:不會複製預設屬性。 如果要匯入的文件定義這個項目名稱的預設屬性,就會指派這些屬性。
XmlEntityReference 因為來源和目的文件可以擁有定義不同的實體,這個方法只會複製 XmlEntityReference 節點。 不包括取代文字。 如果目的文件有定義的實體,就會指派它的值。 因為來源和目的文件可以擁有定義不同的實體,這個方法只會複製 XmlEntityReference 節點。 不包括取代文字。 如果目的文件有定義的實體,就會指派它的值。
XmlProcessingInstruction 從匯入的節點複製目標和資料值。 從匯入的節點複製目標和資料值。
XmlText 複製節點,包含其資料。 複製節點,包含其資料。
XmlSignificantWhitespace 複製節點,包含其資料。 複製節點,包含其資料。
XmlWhitespace 複製節點,包含其資料。 複製節點,包含其資料。
XmlDeclaration 從匯入的節點複製目標和資料值。 從匯入的節點複製目標和資料值。
其他所有的節點型別 這些節點型別不會匯入。 這些節點型別不會匯入。

注意

雖然 DocumentType 節點可以匯入,但是一份文件只能有一個 DocumentType。 因此,當您匯入文件型別之後,在將它插入樹狀之前,您必須確定文件中有文件型別。 如需移除節點的資訊,請參閱從 XML 文件移除節點、內容和值

另請參閱