【发布时间】:2010-01-13 15:44:44
【问题描述】:
我正在使用 asp.net 和 .net 框架 2.0。如果解决方案足够引人注目,我也许可以将服务器升级到 3.5。 这就是问题所在。
我有两个 xml。 我将第 1 件称为 模板,将第 2 件称为 实际。
这是一个基本的例子:
模板:
<questions>
<question1 msg="1234">
<answer></answer>
</question1>
<question2 msg="1235">
<answer></answer>
</question2>
<question3 msg="">
<answer></answer>
</question3>
</questions>
实际:
<questions>
<question1 msg="1234">
<answer>foo</answer>
</question1>
<question2 msg="1235">
<answer>bar</answer>
</question2>
<question3 msg="dynamic">
<answer>blob</answer>
</question3>
</questions>
模板是通用的,对许多用户来说是通用的,然后是实际的,它是特定于个人用户的。
我想提取 actual 和 template 之间的差异,以便可以独立保存然后重新应用于 template 以获得 实际 xml 的完整表示。
我做了一些查找,发现了一个适用于 .net 1.0 的“XML Diff and Patch”工具,看起来它几乎完全符合我的需要,但后来我发现了一些其他对它的引用,似乎表明它有从雷达上掉下来。 http://msdn.microsoft.com/en-us/library/aa302294.aspx
我还发现了一些示例,它们依赖于特定的 xml 结构来手动提取 xml 表示的实体之间的差异。我通常对这种解决方案感到不舒服,并且真的更喜欢一种更通用的解决方案,它能够适应对 xml 所做的更改。
理想情况下,我很想在某个地方找到 .net2.0/3.5 中内置的 xmldiff/patch 功能。如果没有,那么以足够通用的方式解决上述问题,当 xml 更改时它不会中断。
谢谢
【问题讨论】: