有没有办法比较两个docx文档?
我有一个从模板文档生成的文件,其中一些部分通过书签动态删除,并阻止模板中的部分。
我想将生成的文档与另一个docx进行比较,这将是预期的结果。
我模糊地听说校验和比较,
有没有人会对比较2个文件的最佳方法有一些指示?
由于
答案 0 :(得分:1)
您可以使用XMLUnit for .NET来比较主要文档部分(document.xml)。
您可以使用OpenXML SDK或System.IO.Packaging获取主文档部分。有关后一种方法的更多信息,请参阅C# to replace strings of text in a docx。
答案 1 :(得分:0)
我模糊地听说过校验和 比较。
校验和适用于逐字节精确度的比较。如果这是您要查找的内容,则将每个文档的字节读入流中,并使用SHA256Managed
或MD5CryptoServiceProvider
为每个文件生成校验和。如果两个校验和相同,那么这两个文档很可能是相同的。
MD5不适用于安全目的(http://en.wikipedia.org/wiki/MD5 - 请参阅“安全性”)但是对于您控制两个文档的比较目的应该没问题。另请注意,校验和不是100%唯一的,因此总是存在远程碰撞的可能性。
我有一个是从a生成的 模板文档中的某些部分 通过动态删除 书签和阻止部分 模板。
但是,如果您要逐节进行比较,那么您可能需要将文档打开为超过原始字节,并以结构化方式处理它,例如,逐节。您可以使用c#以编程方式打开.docx文件(使用各种方法);也许你可以对每个部分的内容执行校验和?
该主题讨论使用c#:How can a Word document be created in C#?创建/操作.docx文件。可以使用相同的工具来读取一个。