2016-07-29 106 views
1

其實我爲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; 
     } 

回答

0

請參閱樣本ContentControlsAddCustomXmlDataStoragePart.java

在線路84,它說:

parent.addTargetPart(customXmlDataStoragePart, AddPartBehaviour.RENAME_IF_NAME_EXISTS); 

AddPartBehaviour.RENAME_IF_NAME_EXISTS確保任何通過給零件一個新的名字,現有零件不會被覆蓋。

(或者,您也可以使用部分的構造,這需要零件名稱參數,指定你想要的部分名稱。)

請試試這個樣本以確認你想要做什麼。然後你可以嘗試修改代碼。

相關問題