2016-07-29 17 views
1

Eigentlich habe ich benutzerdefinierte xml für docx-Datei hinzugefügt, die bereits benutzerdefinierte xml haben und wenn das docx bereits customxml haben, überschreibt mein Code das vorhandene (item1 und itemprops1). Angenommen, ich habe docx mit customxml. In diesem benutzerdefinierten XML-Ordner befinden sich bereits acht xmls (item1.xml, item2.xml ........ item4.xml und itemprops1.xml ......... itemprops4.xml). Einige, wie ich meine Elemente in neuen XML (item5.xml) verwaltet, aber itemprops5.xml für item5.xml nicht erstellt stattdessen überschreibt es die itemprops1.xml.Wie füge ich neue CustomXmlDataStoragePropertiesPart hinzu, wenn das docx bereits einige?

sind unten für Ihre Referenz Einige meiner Code geben:

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; 
     } 

Antwort

0

Bitte beachten Sie die Probe ContentControlsAddCustomXmlDataStoragePart.java

In Zeile 84, heißt es:

parent.addTargetPart(customXmlDataStoragePart, AddPartBehaviour.RENAME_IF_NAME_EXISTS); 

AddPartBehaviour.RENAME_IF_NAME_EXISTS jede gewährleistet Der vorhandene Teil wird nicht überschrieben, indem dem Teil ein neuer Name zugewiesen wird.

(Alternativ können Sie auch den Teil Konstruktor verwenden, die eine Partname Argument, das Teil von Ihnen gewünschten Namen angeben.)

Bitte versuchen Sie diese Probe zu bestätigen, es tut, was Sie wollen. Dann können Sie versuchen, den Code anzupassen.