c# – 有没有办法管理不规则XML文档的更改,就像使用DataTable一样?

我正在寻找一种方法来导入和导出
XML数据文档的更改列表(不规则结构;不自然地适合DataSet).

如果我有一个常规结构,我将使用DataTable,我可以评估哪些记录已被编辑,然后提交或取消更改,我还可以传输所需更改的数据包.

如何使用XML数据执行此操作?

如果没有一个好的答案,我认为我最好的选择是使用DataTable和方案[XPath,Value],尽管存储效率低,导航困难.

我希望对文档进行更改(使用XPath或LINQ或数据绑定控件或其他),然后记住更改并仅通过TCP发送更改.

然后我想收到另一个更改列表并将其应用于XML文档.我不想发送整个文档的大小,因为我需要知道并评估发送的更改.

(只是为了澄清:我的程序需要发送和接收文档更改.管道的另一端不是基于.net,而不是这个问题的一部分.)

最佳答案 您是否需要对此更改执行操作或仅存储它们,如果您只想存储更新的版本,则可以使用二进制diff算法来传递2 xml文件之间的差异.然后以不同的方式更新存储的版本.对此的好算法是
bifdiff

C#版本可以在
here找到.

另一个方法是使用MS的这个XmlDiff课程

点赞