共用方式為


將內容控制項繫結至資料儲存區中的節點

XML 對應是 Word 的一項功能,可讓您建立檔與 XML 檔案之間的連結。 如此一來,會建立文件格式設定與自訂 XML 資料之間的真正資料/檢視區隔。

XML 對應可讓您對應附加至檔之自訂 XML 元件中的專案。 資料存放區可讓您存取儲存在開啟檔案中的所有自訂 XML 元件。 請參閱資料存放區內任何自訂 XML 元件內的任何節點。

如需內容控制項的詳細資訊,請參閱使用內容控制項

此範例中所使用的物件包括:

範例

下列步驟可讓您將內容控制項繫結至文件資料儲存區內的節點。

  1. 建立要系結至資料存放區中節點的內容控制項。 內容控制項是預先定義的內容片段。 內容控制項有數種類型,包括文字區塊、下拉式功能表、下拉式方塊、行事曆控制項和圖片。 您可以將這些內容控制項對應至 XML 檔案中的元素。 您可以使用 XML 路徑語言 (XPath) ,以程式設計方式將 XML 檔案中的內容對應至內容控制項。 這可讓您撰寫簡單而簡短的應用程式來操作和修改檔中的資料。

如需內容控制項的詳細資訊,請參閱使用內容控制項。 下列程式碼範例會建立純文字內容控制項,並為它提供 「MyTitle」 的標題。

   Dim strTitle As String 
 strTitle = "MyTitle" 
 Dim oContentControl As Word.ContentControl 
 Set oContentControl = ActiveDocument.ContentControls.Add(wdContentControlText) 
 oContentControl.Title = strTitle
  1. 在內容控制項上設定 XML 對應。 Word 物件模型中檔中的資料存放區包含在Document物件的CustomXMLParts屬性中。 CustomXMLParts 屬性會傳回包含CustomXMLPart 物件的 CustomXMLParts集合。 它會指向儲存在檔中的所有自訂 XML 元件。

CustomXMLPart物件代表資料存放區中的單一自訂 XML 元件。 若要載入自訂 XML 資料,您必須先使用CustomXMLParts集合的 Add 方法,將新的自訂 XML 元件新增至Document物件。 這會將新的空白自訂 XML 元件附加至檔。 因為它是空的,所以沒有要對應的 XML。

接下來,您必須藉由呼叫CustomXMLPart物件的Load方法、使用 XML 檔案的有效路徑做為參數,或呼叫CustomXMLPart 的 LoadXML方法並直接傳遞 XML,將 XML 加至新定義的部分。 與 Word 檔一起儲存的預設自訂 XML 元件包含檔的標準文件屬性;您無法刪除這些元件。 您一律可以藉由呼叫自訂 XML 元件的唯讀 XML 屬性來檢視它的內容。 如果您呼叫 CustomXMLPart 物件的 XML 屬性,則會傳回字串,其中包含該資料存放區中的 XML。

建置有效的自訂 XML 檔案,並將其儲存至硬碟。 將自訂 XML 元件新增至包含您想要對應至自訂 XML 資料之內容控制項的檔。 假設內容控制項會對應至下列範例自訂 XML 檔案。

   <?xml version="1.0" encoding="utf-8" ?>
 <tree>
   <fruit>
     <fruitType>peach</fruitType>
     <fruitType>pear</fruitType>
     <fruitType>banana</fruitType>
   </fruit>
 </tree>

Now, suppose the content control is mapped to a <fruitType> node of the previous custom XML part.

下列範例程式碼示範如何將 XML 檔案附加至檔,使其成為可用的資料存放區專案。

   ActiveDocument.CustomXMLParts.Add
 ActiveDocument.CustomXMLParts(ActiveDocument.CustomXMLParts.Count).Load ("c:\mySampleCustomXMLFile.xml")

若要建立 XML 對應,您可以使用 XPath 運算式來指定要對應內容控制項之自訂 XML 資料元件中的節點。 在內容控制項上設定 XML 對應,然後使用該 XPath 運算式指定新增之自訂 XML 元件中的節點。

將自訂 XML 元件新增至檔 (之後,以及自訂 XML 元件包含 XML) 之後,您就可以將其其中一個節點對應至內容控制項。 若要這樣做,請使用ContentControl物件的 XMLMapping 屬性 (使用ContentControl物件的XMLMapping屬性,將包含有效 XPath 的 String 傳遞至 ContentControl 物件) 。

以下是使用 XPath 執行此作業的範例,該 XPath 指的是包含第一個 fruitType 元素值的資料存放區節點。

   Dim strXPath As String 
 strXPath = "tree/fruit/fruitType[1]" 
 ActiveDocument.ContentControls(1).XMLMapping.SetMapping strXPath 

如果您省略選擇性 PrefixMappingsCustomXMLPart 引數,Word 就會依序搜尋每個自訂 XML 組件,而且將控制項對應至第一個使用指定的 XPath 來成功擷取自訂 XML 節點的組件。

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應