Freigeben über


XMLMapping-Objekt (Word)

Stellt die XML-Zuordnung für ein ContentControl-Objekt zwischen benutzerdefiniertem XML und einem Inhaltssteuerelement dar. Eine XML-Zuordnung ist eine Verknüpfung zwischen dem Text in einem Inhaltssteuerelement und einem XML-Element im benutzerdefinierten XML-Datenspeicher für dieses Dokument.

HinwBemerkungeneise

Verwenden Sie die SetMapping-Methode , um die XML-Zuordnung für ein Inhaltssteuerelement mithilfe einer XPath-Zeichenfolge hinzuzufügen oder zu ändern. Im folgenden Beispiel wird die integrierte Dokumenteigenschaft für den Autor des Dokuments festgelegt, ein neues Inhaltssteuerelement in das aktive Dokument eingefügt und dann die XML-Zuordnung für das Steuerelement auf die integrierte Dokumenteigenschaft festgelegt.

Dim objcc As ContentControl 
Dim objMap As XMLMapping 
Dim blnMap As Boolean 
 
ActiveDocument.BuiltInDocumentProperties("Author").Value = "David Jaffe" 
 
Set objcc = ActiveDocument.ContentControls.Add _ 
 (wdContentControlDate, ActiveDocument.Paragraphs(1).Range) 
 
Set objMap = objcc.XMLMapping 
blnMap = objMap.SetMapping(XPath:="/ns1:coreProperties[1]/ns0:createdate[1]") 
 
If blnMap = False Then 
 MsgBox "Unable to map the content control." 
End If

Verwenden Sie die SetMappingByNode-Methode , um die XML-Zuordnung für ein Inhaltssteuerelement mithilfe eines CustomXMLNode-Objekts hinzuzufügen oder zu ändern. Im folgenden Beispiel wird die gleiche Vorgehensweise wie im vorherigen Beispiel ausgeführt, es wird jedoch die SetMappingByNode-Methode verwendet.

Dim objcc As ContentControl 
Dim objNode As CustomXMLNode 
Dim objMap As XMLMapping 
Dim blnMap As Boolean 
 
ActiveDocument.BuiltInDocumentProperties("Author").Value = "David Jaffe" 
 
Set objcc = ActiveDocument.ContentControls.Add _ 
 (wdContentControlDate, ActiveDocument.Paragraphs(1).Range) 
 
Set objNode = ActiveDocument.CustomXMLParts.SelectByNamespace _ 
 ("https://schemas.openxmlformats.org/package/2006/metadata/core-properties") _ 
 (1).DocumentElement.ChildNodes(1) 
 
Set objMap = objcc.XMLMapping 
blnMap = objMap.SetMappingByNode(objNode)

Im folgenden Beispiel wird ein neues CustomXMLPart-Objekt erstellt und benutzerdefinierter XML-Code in das Objekt geladen. Danach werden zwei neue Inhaltssteuerelemente erstellt und jeweils einem anderen XML-Element in benutzerdefiniertem XML-Code zugeordnet.

Dim objRange As Range 
Dim objCustomPart As CustomXMLPart 
Dim objCustomControl As ContentControl 
Dim objCustomNode As CustomXMLNode 
 
Set objCustomPart = ActiveDocument.CustomXMLParts.Add 
objCustomPart.LoadXML ("<books><book><author>Matt Hink</author>" & _ 
 "<title>Migration Paths of the Red Breasted Robin</title>" & _ 
 "<genre>non-fiction</genre><price>29.95</price>" & _ 
 "<pub_date>2/1/2007</pub_date><abstract>You see them in " & _ 
 "the spring outside your windows. You hear their lovely " & _ 
 "songs wafting in the warm spring air. Now follow the path " & _ 
 "of the red breasted robin as it migrates to warmer climes " & _ 
 "in the fall, and then back to your back yard in the spring." & _ 
 "</abstract></book></books>") 
 
ActiveDocument.Range.InsertParagraphBefore 
Set objRange = ActiveDocument.Paragraphs(1).Range 
Set objCustomNode = objCustomPart.SelectSingleNode _ 
 ("/books/book/title") 
Set objCustomControl = ActiveDocument.ContentControls _ 
 .Add(wdContentControlText, objRange) 
objCustomControl.XMLMapping.SetMappingByNode objCustomNode 
 
objRange.InsertParagraphAfter 
Set objRange = ActiveDocument.Paragraphs(2).Range 
Set objCustomNode = objCustomPart.SelectSingleNode _ 
 ("/books/book/abstract") 
Set objCustomControl = ActiveDocument.ContentControls _ 
 .Add(wdContentControlText, objRange) 
objCustomControl.XMLMapping.SetMappingByNode objCustomNode 
 
MsgBox objCustomControl.XMLMapping.IsMapped

Verwenden Sie die Delete-Methode , um die XML-Zuordnung für ein Inhaltssteuerelement zu entfernen. Durch das Löschen der XML-Zuordnung für ein Inhaltssteuerelement wird nur die Verbindung zwischen dem Inhaltssteuerelement und den XML-Daten gelöscht. Sowohl das Inhaltssteuerelement als auch die XML-Daten verbleiben im Dokument. Im folgenden Beispiel wird die XML-Zuordnung für alle Inhaltssteuerelemente im aktiven Dokument gelöscht, die derzeit zugeordnet sind.

Dim objCC As ContentControl 
 
For Each objCC In ActiveDocument.ContentControls 
 If objCC.XMLMapping.IsMapped Then 
 objCC.XMLMapping.Delete 
 End If 
Next

Verwenden Sie die IsMapped-Eigenschaft , um zu bestimmen, ob ein Inhaltssteuerelement einem XML-Knoten im Datenspeicher des Dokuments zugeordnet ist. Im folgenden Beispiel wird die XML-Zuordnung für alle zugeordneten Inhaltssteuerelemente im aktiven Dokument gelöscht.

Dim objCC As ContentControl 
 
For Each objCC In ActiveDocument.ContentControls 
 If objCC.XMLMapping.IsMapped Then 
 objCC.XMLMapping.Delete 
 End If 
Next

Verwenden Sie die CustomXMLNode-Eigenschaft , um auf den XML-Knoten zuzugreifen, dem ein Inhaltssteuerelement zugeordnet ist. Verwenden Sie die CustomXMLPart-Eigenschaft , um auf den XML-Teil zuzugreifen, dem ein Inhaltssteuerelement zugeordnet ist. Informationen zum Arbeiten mit dem CustomXMLNode-Objekt und dem CustomXMLPart-Objekt finden Sie unter den jeweiligen Objektthemen.

Siehe auch

Referenz zum Word-Objektmodell

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.