加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将docX转换为自定义XML

发布时间:2020-12-16 22:54:32 所属栏目:百科 来源:网络整理
导读:我一直在尝试将我的docX文件转换为我定制的 XML.我的用户希望他们的数据转换为此XML,以便在他们的Web应用程序中更容易地进行内容查询,并且他们希望输入来自他们的docX. 我曾尝试在Java中寻找转换器API,但似乎都不符合我的要求.我查看了docx4j,但意识到它只转
我一直在尝试将我的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专利闹剧可能会使这种方法不可取)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读