如何添加新的CustomXmlDataStoragePropertiesPart,如果docx已经有一些?

问题描述:

其实我为docx文件添加了自定义xml,这个文件已经没有自定义xml,如果docx已经有customxml,我的代码只是覆盖现有的(item1和itemprops1)。说我有customxml的docx。在那个定制的xml文件夹中,已经有8个xml(item1.xml,item2.xml ........ item4.xml和itemprops1.xml ......... itemprops4.xml)。一些我如何管理我的元素在新的xml(item5.xml)中,但它不会为item5.xml创建itemprops5.xml,而是覆盖itemprops1.xml。如何添加新的CustomXmlDataStoragePropertiesPart,如果docx已经有一些?

我的一些代码在下面,供大家参考:

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确保任何通过给零件一个新的名字,现有零件不会被覆盖。

(或者,您也可以使用部分的构造,这需要零件名称参数,指定你想要的部分名称。)

请试试这个样本以确认你想要做什么。然后你可以尝试修改代码。