微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将docX转换为自定义XML

我一直在尝试将我的docX文件转换为我定制的 XML.我的用户希望他们的数据转换为此XML,以便在他们的Web应用程序中更容易地进行内容查询,并且他们希望输入来自他们的docX.

我曾尝试在Java中寻找转换器API,但似乎都不符合我的要求.我查看了docx4j,但意识到它只转换为HTML和PDF.我在想是否存在我可以输入的转换器API,例如,中间转换器(XSLT),输出将是我的自定义XML,包含来自docX的数据.

有现成的工具吗?如果没有,那么我在编写自己的转换器时必须采取的方法有任何建议,例如:从openXML开始,在自定义XML之前首先转换为XSL-FO?

很想听听社区的消息.

非常感谢你.

解决方法

docx4j可用于通过XSLT将OpenXML转换为任意XML.

假设模板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,但如果您依赖Word进行编辑,i4i专利闹剧可能会使这种方法不可取)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。