Objet XMLMapping (Word)
Représente le mappage XML sur un objet ContentControl entre des données XML personnalisées et un contrôle de contenu. Un mappage XML est un lien entre le texte d'un contrôle de contenu et un élément XML dans la banque de données XML personnalisée de ce document.
Utilisez la méthode SetMapping pour ajouter ou modifier le mappage XML d'un contrôle de contenu à l'aide d'une chaîne XPath. L'exemple ci-dessous montre comment définir la propriété de document prédéfinie pour l'auteur du document, insérer un nouveau contrôle de contenu dans le document actif et définir le mappage XML du contrôle sur la propriété de document prédéfinie.
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
Utilisez la méthode SetMappingByNode pour ajouter ou modifier le mappage XML pour un contrôle de contenu à l'aide d'un objet CustomXMLNode. L'exemple suivant effectue les mêmes actions que l'exemple précédent, mais utilise la méthode SetMappingByNode.
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)
L'exemple suivant crée un nouvel objet CustomXMLPart, charge la partie XML personnalisée dans ce code, puis crée deux nouveaux contrôles de contenu et est mappé à un élément XML différent au sein de la partie XML personnalisée.
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
Utilisez la méthode Delete pour supprimer le mappage XML du contrôle de contenu. Supprimer le mappage XML d'un contrôle de contenu revient à supprimer uniquement la connexion entre le contrôle de contenu et les données XML. Le contrôle de contenu et les données XML restent dans le document. L'exemple ci-dessous montre comment supprimer le mappage XML pour tous les contrôles de contenu du document actif qui sont actuellement mappés.
Dim objCC As ContentControl
For Each objCC In ActiveDocument.ContentControls
If objCC.XMLMapping.IsMapped Then
objCC.XMLMapping.Delete
End If
Next
Utilisez la propriété IsMapped pour déterminer si un contrôle de contenu est mappé à un nœud XML dans la banque de données du document. L'exemple ci-dessous montre comment supprimer le mappage XML pour tous les contrôles de contenus mappés du document actif.
Dim objCC As ContentControl
For Each objCC In ActiveDocument.ContentControls
If objCC.XMLMapping.IsMapped Then
objCC.XMLMapping.Delete
End If
Next
Utilisez la propriété CustomXMLNode pour accéder au nœud XML auquel un contrôle de contenu est mappé. Utilisez la propriété CustomXMLPart pour accéder à la partie XML sur laquelle est mappé un contrôle de contenu. Pour plus d'informations sur l'utilisation de l'objet CustomXMLNode et objets CustomXMLPart, voir les rubriques de l'objet respectifs.
Référence du modèle objet Word
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.