“XML往返”对Word 2003文档有什么影响?

时间:2009-07-03 05:18:18

标签: xml ms-word wordml roundtrip

将Word 2003文档保存为XML,然后将结果缩小到文件大小,可能还有更多我不知道的内容。针对旧文档的新文档的WordML上的差异仅在revision save ID's中显示差异。那么,在roundtrip中迷失了什么?

如果什么都没有丢失,那么如何解释文件大小的几千字节?

4 个答案:

答案 0 :(得分:3)

以下只是猜测。

.doc文件实际上是OLE structured storage compound file。后者是一种以明确定义的方式在单个文档中打包多个流的方法,并且该结构实际​​上非常接近文件系统中的文件 - 例如,它具有“扇区”和扇区分配表。这种方法可以在不对其进行完全重写的情况下就地编辑文档文件。

但是,这种存储方法会导致一些冗余,例如未使用的扇区。当您往返文件时,您可以从头开始有效地重新创建它,因此可以消除任何此类冗余存储假象。

答案 1 :(得分:2)

据我所知,除了DOC文件中的文本和格式之外,Word还存储了一些信息,例如用户信息,文档历史记录中的一些内容等。当使用“文件>保存”时,此信息会累积。我认为保存为XML并重新保存为DOC剥离该信息。

如果我没记错的话,简单的“另存为”已经减少了文件大小,我认为曾经有一些菜单项允许你保存一个尺寸明显小于“文件>”的DOC文件版本;保存“版本。

答案 2 :(得分:1)

如果在十六进制编辑器中查看word文档(.doc),您将看到有许多冗余零块。格式很棒,doc!

无论如何,保存到XML然后再回到doc可能会消除那些数千个零字节中的一些。

如果你真的好奇只是在十六进制编辑器中打开两个文件并运行差异算法,你可以尝试Hex Workshop和Hex Editor Neo。

答案 3 :(得分:0)

我使用一些大型Word 2003文档进行的实验表明,保存为XML,然后将其保存为.doc,确实会导致稍微但不显着的较小文件。正如您所指出的那样,rsidR属性是不同的,但这并不能解释大小的减小,因为新的rsidR通常具有相同的大小。

正如Danra指出的那样,.doc文件具有相同字节的运行。但是保存为.doc的较小文件也有这样的运行,所以我相信这是.doc二进制格式的工件,而不是信息携带数据。我看了一些圆形的.doc文件,可能看不出外观上的差别,支持差异不是信息携带的想法。

检查往返后创建的XML文件显示主要区别是几个rPr(运行属性),转换为XML后没有删除任何内容。似乎保存,因为XML删除了未使用的字符样式和属性。