將內容控制項繫結至資料儲存區中的節點
XML 對應是 Word 的一項功能,可讓您建立檔與 XML 檔案之間的連結。 如此一來,會建立文件格式設定與自訂 XML 資料之間的真正資料/檢視區隔。
XML 對應可讓您對應附加至檔之自訂 XML 元件中的專案。 資料存放區可讓您存取儲存在開啟檔案中的所有自訂 XML 元件。 請參閱資料存放區內任何自訂 XML 元件內的任何節點。
如需內容控制項的詳細資訊,請參閱使用內容控制項。
此範例中所使用的物件包括:
- ContentControl
- ContentControls
- CustomXMLPart (Microsoft Office 核心物件模型)
- CustomXMLParts (Microsoft Office 核心物件模型)
- XMLMapping
範例
下列步驟可讓您將內容控制項繫結至文件資料儲存區內的節點。
- 建立要系結至資料存放區中節點的內容控制項。 內容控制項是預先定義的內容片段。 內容控制項有數種類型,包括文字區塊、下拉式功能表、下拉式方塊、行事曆控制項和圖片。 您可以將這些內容控制項對應至 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
- 在內容控制項上設定 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
如果您省略選擇性 PrefixMappings 和 CustomXMLPart 引數,Word 就會依序搜尋每個自訂 XML 組件,而且將控制項對應至第一個使用指定的 XPath 來成功擷取自訂 XML 節點的組件。
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。