手把手教你解析xml格式的word文档-附代码

本文介绍了如何针对dom4j、Jdom和w3cdom解析XML文档速度慢的问题,通过自定义代码实现文档块切分、书签处理和表格循环,以及内存优化的策略。作者详细描述了不同类型的切分器和文档构建过程,重点关注书签块的写入方法。
摘要由CSDN通过智能技术生成

1 背景

dom4j,Jdom,w3c dom解析xml文档时速度比较慢,因此选择自己写代码解析xml文档。

2 思路

首先,对xml文件进行分析,熟悉标签;

然后,切分文档为不同的块。我们要对文档中的书签进行替换,因此需要将文档切分为书签块和非书签块;

还有就是表格中行的循环,比如当前取出的数据是一个list,我们需要根据list的大小来生成表格中的行数,并对此表格中的书签进行数据替换(如下图),此时,需要将文档进切分为“循环的行块”和非行块。

除此之外,还有需删除的行块,表示该行需要删除,一般用循环的行在合并单元格之后的表格设计上。

最后,对文档中切分好的块进行文档构建。

优化:边切分边写入,减少内存的使用

3 编码

3.1 块切分器

(1)书签切分器BookmarkCutter

(2)行切分器RowBookmarkCutter

(3)不需处理的书签块(skipCutter)

 (4)删除切分器

(5)整个表格循环切分器

 3.2 构件xml文档

文档切分完成后,分别对不同的块中的进行写入,构件成一个完整的文档。

其中最主要的写入是“书签块的写入”,由于书签块分为“头”“尾”“身体”,身体里包含“文字块”和“非文字”块,书签替换时只需将数据替换到第一个文字块中即可,之后的文字块忽略不计(因为替换的文字很难选择文字块中的某一块的样式,所以选择取第一个文字块的样式)

附上代码:https://download.csdn.net/download/u013984781/10593416

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值