我已经看到C# 具有针对 Xml 文档的回滚功能,并且有人建议复制以前的结构:我想避免最后一个实现,因为对于繁重的 XML 文档,这将需要大量的内存浪费。
特别是,我想追踪
- 文档的初始状态
- 已删除或添加的每个元素
- 有可能回滚并最终恢复未完成的操作。
是否有使用 libxml 或 libxml++ 在 XML 文档上提供此功能的库?提前致谢。
我能想到的唯一理智的方法是对目录中的各种文档进行比较,拥有 diff 的历史,您可以轻松地重新生成旧文档。
rdiff-backup 做这样的事情来做一般的文件复制,它维护一个目录/文件的最后一个副本和一个包含重新生成旧文件所需的所有信息的目录。 https://www.gnu.org/savannah-checkouts/non-gnu/rdiff-backup/