Objeto XMLMapping (Word)
Representa la asignación XML en un objeto ContentControl entre código XML personalizado y un control de contenido. Una asignación XML es un vínculo entre el texto de un control de contenido y un elemento XML del almacén de datos XML personalizado para este documento.
Comentarios
Utilice el método SetMapping para agregar o cambiar la asignación XML para un control de contenido mediante una cadena XPath. En el ejemplo siguiente, se establece la propiedad de documento integrada del autor del documento, se inserta un nuevo control de contenido en el documento activo y, a continuación, se establece la asignación XML para el control en la propiedad de documento integrada.
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
Utilice el método SetMappingByNode para agregar o cambiar la asignación XML para un control de contenido mediante un objeto CustomXMLNode. En el siguiente ejemplo hace lo mismo que el ejemplo anterior, pero utiliza el método 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)
El ejemplo siguiente crea un nuevo objeto CustomXMLPart, carga XML personalizados en él y, a continuación, crea dos nuevos controles de contenido y asigna cada uno a un elemento XML distinto dentro del XML personalizado.
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
Utilice el método Delete para eliminar la asignación XML para un control de contenido. Tenga en cuenta que, si elimina la asignación XML para un control de contenido, sólo se eliminará la conexión entre éste y los datos XML. Tanto el control de contenido como los datos XML permanecerán en el documento. En el siguiente ejemplo, se elimina la asignación XML de todos los controles de contenido del documento activo que se encuentran asociados actualmente.
Dim objCC As ContentControl
For Each objCC In ActiveDocument.ContentControls
If objCC.XMLMapping.IsMapped Then
objCC.XMLMapping.Delete
End If
Next
Utilice la propiedad IsMapped para determinar si un control de contenido está asignado a un nodo XML en el almacén de datos del documento. En el siguiente ejemplo, se elimina la asignación XML para todos los controles de contenido asignados en el documento activo.
Dim objCC As ContentControl
For Each objCC In ActiveDocument.ContentControls
If objCC.XMLMapping.IsMapped Then
objCC.XMLMapping.Delete
End If
Next
Utilice la propiedad CustomXMLNode para tener acceso al nodo XML al que se asigna un control de contenido. Utilice la propiedad CustomXMLPart para tener acceso al elemento XML al que se asigna un control de contenido. Para obtener más información sobre cómo trabajar con CustomXMLNode y objetos CustomXMLPart, vea los temas de objetos respectivos.
Vea también
Referencia de modelos de objetos de Word
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.