实际上我为docx文件添加了自定义xml,它已经没有自定义xml,如果docx已经有了customxml,我的代码只会覆盖现有的(item1和itemprops1)。说我有customxml的docx。在该自定义xml文件夹中,已经有8个xmls(item1.xml,item2.xml ........ item4.xml和itemprops1.xml ......... itemprops4.xml)。一些我如何在新的xml(item5.xml)中管理我的元素,但它没有为item5.xml创建itemprops5.xml,而是覆盖了itemprops1.xml。
以下提供了一些代码供您参考:
CustomXmlDataStoragePart custom = new CustomXmlDataStoragePart();
PartName ps = custom.getPartName();
Parts pn = wordMLPackage.getParts();
CustomXmlDataStoragePart customXmlDataStoragePart = null;
if (pn.get(ps) == null) {
customXmlDataStoragePart =injectCustomXmlDataStoragePart(documentPart, wordMLPackage.getParts());
addProperties(customXmlDataStoragePart);
} else {
custom = injectCustomXmlDataStoragePart(documentPart, wordMLPackage.getParts());
addProperties(custom);
customXmlDataStoragePart = custom;
}
答案 0 :(得分:0)
请参阅示例ContentControlsAddCustomXmlDataStoragePart.java
在第84行,它说:
parent.addTargetPart(customXmlDataStoragePart, AddPartBehaviour.RENAME_IF_NAME_EXISTS);
AddPartBehaviour.RENAME_IF_NAME_EXISTS通过为部件指定新名称,确保不会覆盖任何现有部件。
(或者,您可以使用带有PartName参数的零件构造函数来指定所需的零件名称。)
请尝试此示例以确认它符合您的要求。然后你可以尝试调整代码。