docx4j может использоваться для преобразования OpenXML в произвольный XML через XSLT.
Предполагается Шаблоны xslt и javax.xml.transform.stream. StreamResult результат , вы бы сделали что-то вроде этого:
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
MainDocumentPart mdp = wordMLPackage.getMainDocumentPart();
// DOM document to input to transform
org.w3c.dom.Document doc = XmlUtils.marshaltoW3CDomDocument(
mdp.getJaxbElement() );
XmlUtils.transform(doc, xslt, null, result);
Однако, если все, что вы хотите сделать, это преобразовать в XML, то docx4j (и Apache POI для этогоимеют значение), излишни.Вы можете просто использовать OpenXML4J напрямую.
Хотя наилучшим подходом будет преобразование через XSLT, зависит от того, ориентирован ли ваш целевой XML на документ или данные.
Если он ориентирован на документы, XSLT является хорошим подходом.
Если он ориентирован на данные, вы можете рассмотреть возможность привязки данных к управлению контентом.(Был другой подход, называемый customxml, но патентный фарс i4i может сделать этот подход нецелесообразным, если вы используете Word для редактирования)