docx4j报告未更改的表数据的差异

时间:2012-08-13 18:55:48

标签: jaxb docx4j

我创建了一个带有2x2表的* .docx文件,每个单元格包含文本Cell x-y,其中x =行号,y =列号。

当我通过简单的转换过程传递此文档时,docx4j的Differencer.diff()方法报告没有差异(即没有w:insw:del标记。)

尽管.docx在<w:tc> -> <w:p>标记中将原始文档的文本分解为这样的事实,但这是预期的并且处理得很干净:

<w:r>
  <w:t>Cell</w:t>
</w:r>
<w:r>
  <w:t xml:space="preserve"> 1-1</w:t>
</w:r>

并在转换后的文档中:

<w:r>
  <w:t xml:space="preserve">Cell 1-1</w:t>
</w:r>

但是,如果我在文档中的表格上方添加文本“表标题”,​​原始文档的内容(Word的处理,我无能为力)单元格合并为一个<w:r>

<w:r>
  <w:t>Cell 1-1</w:t>
</w:r>

转换后的文档中唯一的区别是插入了xml:space="preserve"

<w:r>
  <w:t xml:space="preserve">Cell 1-1</w:t>
</w:r>

然而,docx4j的Differencer.diff()方法现在报告插入了每个单元格的内容,并将以下内容显示为每个w:tc {{1}的内容在生成的差异文档中:

<w:ins xmlns:xalan="http://xml.apache.org/xalan" xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage" w:date="2009-03-11T17:57:00Z" w:author="someone" w:id="1">
  <w:r>
    <w:t xml:space="preserve">Cell 1-1</w:t>
  </w:r>
</w:ins>

并在关闭w:p标记后立即显示每个单元格的内容已删除:

    <!--Handling simple deleted w:p-->
    <w:p xmlns:xalan="http://xml.apache.org/xalan" xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage">
        <w:del w:date="2009-03-11T17:57:00Z" w:author="someone" w:id="5">
            <w:r>
                <w:delText>Cell 1-1
            </w:r>
        </w:del>
    </w:p>

我知道差异器能够忽略<w:tbl>属性,因为它在表格之前插入了文本,所以我怀疑这是原因。

这些表格方案是否超出了xml:space="preserve"的预期用例?这是使用/调用中的错误吗?错误?

感谢任何指导。

0 个答案:

没有答案