删除 CustomXml 文件 -docx4j

Delete CustomXml files -docx4j

如何删除自定义 XML 文件及其 属性 和关系文件?,我使用了 clear() 方法。但它不起作用。帮帮我。

wordMLPackage.getCustomXmlDataStorageParts().clear();

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