XMLMapping.SetMappingByNode 方法 (Word)
允许创建或更改内容控件上的 XML 数据映射。 如果 Microsoft Word 将内容控件映射到文档的自定义 XML 数据存储中的自定义 XML 节点,则返回 True 。
语法
expression。 SetMappingByNode
( _Node_
)
表达 返回“XMLMapping”对象的表达式。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Node | 必需 | CustomXMLNode | 指定当前内容控件所映射到的 XML 节点。 |
返回值
布尔值
备注
如果 XML 映射已经存在,则 Word 将替换现有 XML 映射,并以新映射的 XML 节点的内容替换内容控件的文本。 请参阅 SetMapping 方法。
注意
为格式文本内容控件创建映射将导致运行时错误。
示例
以下示例设置文档作者这一内置文档属性,在活动文档中插入新的内容控件,然后将此控件的 XML 映射设置为该内置文档属性。
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)
以下示例创建自定义 XML 部件,然后创建两个内容控件,并将每个内容控件映射到自定义 XML 中的特定节点。
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>2007-02-01</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
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。