【问题标题】:Accept Insertion and reject deletion openxml接受插入拒绝删除openxml
【发布时间】:2020-02-14 01:06:44
【问题描述】:
我需要比较两个 Word 文件并将所有插入内容合并到第三个文件中。
我已经设法使用 OpenXML-Power-Tools 和 WmlCompare 做到这一点,但我如何只拒绝删除?
OpenXmlPowerTools.RevisionAccepter 可以轻松接受插入,但我无法拒绝删除操作,这样我就可以在没有修改的情况下获得合并文件。
我应该采用这种方法还是您会建议不同的方法?
规则是:
- 1) 可以在文件的任何位置添加文本。
- 2) 文本始终添加到文件中,从不删除。
- 3) 文件具有 .docx 文件扩展名
【问题讨论】:
标签:
openxml
openxml-powertools
【解决方案1】:
拒绝或撤消删除相对容易。因此,假设您有以下示例段落,其中一个 w:del 元素包装了一个已删除的 w:r 元素。
<w:p>
<w:r>
<w:t xml:space="preserve">This is </w:t>
</w:r>
<w:del w:id="0" w:author="Thomas Barnekow" w:date="2020-02-16T14:37:00Z">
<w:r>
<w:delText xml:space="preserve">deleted </w:delText>
</w:r>
</w:del>
<w:r>
<w:t>text.</w:t>
</w:r>
</w:p>
要拒绝删除,您需要解开已删除的w:r 并将w:delText 再次变为w:t。没有任何进一步处理(见下文),您拒绝删除的结果将如下所示:
<w:p>
<w:r>
<w:t xml:space="preserve">This is </w:t>
</w:r>
<w:r>
<w:t xml:space="preserve">deleted </w:delText>
</w:r>
<w:r>
<w:t>text.</w:t>
</w:r>
</w:p>
作为可选步骤,使用 Open XML PowerTools 的 MarkupSimplifier,您还可以合并具有相同格式的相邻运行,这将产生以下标记:
<w:p>
<w:r>
<w:t>This is deleted text.</w:t>
</w:r>
</w:p>