Я использую asp.net и .net framework 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>
Шаблон является общим и общим для многих пользователей, тогда есть фактическая , которая характерна для отдельных пользователей.
Я бы хотел извлечь дельту между фактическим и шаблоном таким образом, чтобы его можно было сохранить независимо, а затем повторно применить к шаблону , чтобы получить полное представление о фактических xml.
Я кое-что посмотрел и нашел инструмент «XML Diff and Patch» для .net 1.0, который выглядит так, как будто он делает в точности то, что мне нужно, но потом я нашел некоторые другие ссылки на него, которые, кажется, указывают упал с радара.
http://msdn.microsoft.com/en-us/library/aa302294.aspx
Я также нашел несколько примеров, которые основаны на конкретной структуре xml для ручного извлечения различий между сущностями, представленными в xml. Мне вообще неудобно с этим решением, и я действительно предпочел бы более общее решение, которое устойчиво к изменениям, внесенным в xml.
В идеале я бы хотел найти где-нибудь функциональность xmldiff / patch, встроенную в .net2.0 / 3.5. Если нет, то что-то, что решает вышеуказанную проблему достаточно обобщенно, чтобы не сломаться при изменении xml.
Спасибо