当前位置 : 主页 > 网页制作 > xml >

将docX转换为自定义XML

来源:互联网 收集:自由互联 发布时间:2021-06-13
我一直在尝试将我的docX文件转换为我定制的 XML.我的用户希望他们的数据转换为此XML,以便在他们的Web应用程序中更容易地进行内容查询,并且他们希望输入来自他们的docX. 我曾尝试在J
我一直在尝试将我的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专利闹剧可能会使这种方法不可取)

网友评论