Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“一个”的影响是什么;XML往返“;关于Word 2003文档?_Xml_Ms Word_Wordml_Roundtrip - Fatal编程技术网

“一个”的影响是什么;XML往返“;关于Word 2003文档?

“一个”的影响是什么;XML往返“;关于Word 2003文档?,xml,ms-word,wordml,roundtrip,Xml,Ms Word,Wordml,Roundtrip,将Word 2003文档保存为XML,然后再将其保存回XML,会减少文件大小,可能还会减少我不知道的文件大小。新文档的WordML与旧文档之间的差异仅在以下方面显示差异。那么,在这场危机中迷失了什么呢 如果没有任何东西丢失,那么如何解释文件大小减少了几千字节 据我所知,Word除了在文档文件中存储文本和格式外,还存储一些信息,例如用户信息、文档历史记录中的一些内容等。使用“文件>保存”时,这些信息会累积。我认为保存为XML并重新保存为文档会删除这些信息 如果我没记错的话,简单的“另存为”已经减少

将Word 2003文档保存为XML,然后再将其保存回XML,会减少文件大小,可能还会减少我不知道的文件大小。新文档的WordML与旧文档之间的差异仅在以下方面显示差异。那么,在这场危机中迷失了什么呢


如果没有任何东西丢失,那么如何解释文件大小减少了几千字节

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


如果我没记错的话,简单的“另存为”已经减少了文件的大小,我想过去有一些菜单项可以让你保存一个比“文件>保存”版本小得多的文档版本。

如果你在十六进制编辑器中查看word文档(.DOC),你会发现有很多,许多冗余零块。太棒了,博士

无论如何,保存到XML然后再返回到doc可能会去掉其中的一些零字节


如果您真的很好奇,只需在hex编辑器中打开这两个文件并运行一个不同的算法,您可以尝试hex Workshop和hex editor Neo。

我对一些大型Word 2003文档的实验表明,将其保存为XML,然后将其保存为.doc,确实会产生一个稍微小一些的文件,但并不显著。正如您所指出的,rsidR属性是不同的,但这并不能解释大小的减少,因为新的rsidR通常是相同的大小

正如Danra指出的,.doc文件有相同字节的运行。但是另存为.doc的较小文件也有这样的运行,所以我相信这是.doc二进制格式的产物,而不是承载数据的信息。我查看了一些往返的.doc文件,在外观上看不到任何差异,支持这种差异不是信息承载的观点


检查往返后创建的XML文件表明,主要区别在于转换为XML后删除了几个没有内容的rPr(运行属性)。“另存为XML”似乎会删除未使用的字符样式和属性。

以下只是猜测

.doc文件实际上是。后者是一种以定义良好的方式将多个流打包到单个文档中的方法,其结构实际上非常接近于文件系统——例如,它有“扇区”和扇区分配表。这种方法可以在不完全重写的情况下就地编辑文档文件


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

我相信您的回答是正确的——我听说冗余被称为“二进制灰尘”。我认为您在这里的答案实际上就是文件上任何“往返”的目的:消除冗余。也感谢您了解这两个链接。