如果 docx 已经有一些,如何添加新的 CustomXmlDataStoragePropertiesPart?
How to add new CustomXmlDataStoragePropertiesPart if the docx already have some?
实际上我为没有自定义xml的docx文件添加了自定义xml,如果docx已经有自定义xml我的代码只是覆盖现有的(item1和 itemprops1)。假设我有带有 customxml 的 docx。在那个自定义 xml 文件夹中已经有八个 xml(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;
}
请看样本ContentControlsAddCustomXmlDataStoragePart.java
在第 84 行,它说:
parent.addTargetPart(customXmlDataStoragePart, AddPartBehaviour.RENAME_IF_NAME_EXISTS);
AddPartBehaviour.RENAME_IF_NAME_EXISTS 通过给部件一个新名称确保任何现有部件不被覆盖。
(或者,您可以使用带有 PartName 参数的零件构造函数来指定您想要的零件名称。)
请尝试此示例以确认它是否符合您的要求。然后你可以尝试修改代码。
实际上我为没有自定义xml的docx文件添加了自定义xml,如果docx已经有自定义xml我的代码只是覆盖现有的(item1和 itemprops1)。假设我有带有 customxml 的 docx。在那个自定义 xml 文件夹中已经有八个 xml(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;
}
请看样本ContentControlsAddCustomXmlDataStoragePart.java
在第 84 行,它说:
parent.addTargetPart(customXmlDataStoragePart, AddPartBehaviour.RENAME_IF_NAME_EXISTS);
AddPartBehaviour.RENAME_IF_NAME_EXISTS 通过给部件一个新名称确保任何现有部件不被覆盖。
(或者,您可以使用带有 PartName 参数的零件构造函数来指定您想要的零件名称。)
请尝试此示例以确认它是否符合您的要求。然后你可以尝试修改代码。