1、需求:
a. 将word中的内容按照层级结构解析出来
b. 不区分文件的后缀
c. 包含word的样式
2、思路:
总体思路分为存和取,存的是文档的标题和内容、图片等;取的是文档的树形结构。
(1). 存:将word中的标题、内容、图片获取出来并进行存储
a. 上传文档时,获取到文档的名称,存储到数据库表中,产生一个id,即documentId
b. 解析word之后,按照顺序遍历获取每一个标题进行存储,父标题和子标题之间使用parentId进行关联,即子标题中字段parentId是父标题的id
c. 在所有的标题中都添加一个documentId方便后期范围查询
d. 根节点即一级标题的父id为0
e. 查到的内容如果是p标签,则与自己的上一级进行关联,即p标签的父id为它的上一级标签id
f. 关联完成之后,生成一个树形结构,并遍历存储到第三方平台的数据库中。
(2). 取:根据documentId查询该文档的树形结构并返回
a. 根据documentId查询该文档的所有标题并存储到集合中去
b. 对集合进行遍历,为了充分使用递归,规定最顶层的标题的父节点为0,从父节点为0的元素开始递归,并将产生的结果生成树形结构并返回。
3、注意:
(1). 因为自己做的主要是在第三方平台上的操作,所以类似于DmeTestRequestUtil.getDmeResult() 这样的方法主要是跟第三方平台的交互,出于安全性考虑就不放出来了。
(2). 包含word的样式:要思考的时怎么才能够获得word的样式,即获得html文件
(3). 在解析的过程中样式是以行内式还是其他的效果呈现:可以转换为行内式
(4). 为什么不用poi:使用poi最恶心的是要考虑word的版本问题
(5). 使用的依赖主要是什么:aspose、jsoup
(6). 层级结构解析主要是判断h、p的顺序关系
4、代码:
(1). 依赖
(2). 解析word并保存到第三方接口中代码逻辑
(3). 根据documentId查询取该篇文档的标题内容树形结构
总结
到此这篇关于如何使用Java将word解析出来的文章就介绍到这了,更多相关Java解析word内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!