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.
Hinweise
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.