动态识别CustomXMLPart(并保留标识符)

时间:2016-09-12 03:15:43

标签: xpath ms-word office-interop domdocument

我正在处理CustomXMLPart我所识别的属性(@Id)。

var xPath = "/ns0:customPartParent[1]/ChildNode[@Id='" + id + "']";
contentControl.XMLMapping.SetMapping(xpath, prefix, customPart)

当将控件的xPath设置为上面,在运行时查看映射时,路​​径保持为Id - 即

/ns0:customPartParent[1]/ChildNode[@Id='eae2fd04-3a05-42c1-a154-0d7da47cca56']

但是只要我提供一条完整的路径; /ns0:customPartParent[1]/ChildNode[@Id='eae2fd04-3a05-42c1-a154-0d7da47cca56']/Value[1]/Item[1]/Fullname[1]

@Id将替换为文档中附加部分的索引。

/ns0:customPartParent[1]/ChildNode[2]/Value[1]/Item[1]/Fullname[1]

这是一个问题的原因是因为我们的功能允许合并2个文档,我从一个文档复制XMLPartNodes并将其添加到第二个文档的节点 - 如果这些是索引的,他们显然会查看customXMLPart中的错误项目。

我想尝试强制保留@Id,以便当我将此部分移动到另一个文档时,该部分将使用相同的@id标识,而不是通过索引标识?

有什么想法吗?

更新:只有在添加重复内容控件后才会发生这种情况,只要我添加了我的重复控件,所有ID都会消失并恢复为索引编号。

重复添加项目之前内容控件的值: /ns0:customPartParent[1]/ChildNode[@Id='1cae3c3f-c847-4a7c-91dc-5625a2228a11']/Value[1]/Item[1]/Fullname[1]

重复添加项目后内容控件的值: /ns0:customPartParent[1]/ChildNode[2]/Value[1]/Item[1]/Fullname[1]

0 个答案:

没有答案