Удалить пользовательские Xml файлы -docx4j - PullRequest
0 голосов
/ 14 марта 2020

Как удалить пользовательские XML файлы с их файлами свойств и отношений? Я использовал метод clear (). Но это не работает. Помоги мне.

wordMLPackage.getCustomXmlDataStorageParts().clear();

1 Ответ

1 голос
/ 26 марта 2020

https://github.com/plutext/docx4j/blob/master/docx4j-core/src/main/java/org/docx4j/Docx4J.java#L643 показывает, как это сделать. Чтобы удалить их все, это будет:

protected static void removeDefinedCustomXmlParts(WordprocessingMLPackage wmlPackage) {
List<PartName> partsToRemove = new ArrayList<PartName>();
RelationshipsPart relationshipsPart = wmlPackage.getMainDocumentPart().getRelationshipsPart();
List<Relationship> relationshipsList = ((relationshipsPart != null) && 
                                        (relationshipsPart.getRelationships() != null) ?
                                        relationshipsPart.getRelationships().getRelationship() : null);
Part part = null;
    if (relationshipsList != null) {
        for (Relationship relationship : relationshipsList) {
            if (Namespaces.CUSTOM_XML_DATA_STORAGE.equals(relationship.getType())) {
                part = relationshipsPart.getPart(relationship);
                partsToRemove.add(part.getPartName());
            }
        }
    }
    if (!partsToRemove.isEmpty()) {
        for (int i=0; i<partsToRemove.size(); i++) {
            relationshipsPart.removePart(partsToRemove.get(i));
        }
    }
}
...