比较两个xml文件并显示差异
本文关键字:文件 显示 xml 两个 比较 | 更新日期: 2023-09-27 17:51:02
我正在尝试比较两个xml文件并显示差异,如果发现的话。
目前我正在使用XML Diff来查找差异。
方法使用
private bool CheckDifferences(string originalFile, string newFile, ref string difference)
{
var diff = new XmlDiff
{
IgnoreComments = true,
IgnorePI = true,
IgnoreWhitespace = true,
Algorithm = XmlDiffAlgorithm.Precise
};
var sw = new StringWriter();
var writer = new XmlTextWriter(sw);
writer.Formatting = Formatting.Indented;
var originalReader = new XmlTextReader(new StringReader(originalFile));
var modifiedReader = new XmlTextReader(new StringReader(newFile));
var status = diff.Compare(originalReader, modifiedReader, writer);
difference = sw.ToString();
writer.Close();
originalReader.Close();
modifiedReader.Close();
return status;
}
但是difference
只包含变化,而不包含确切的变化。
例如我想要达到的是
xml1 -原始文件
<catalog>
<book id="bk11">
<author>AuthorName1</author>
</book>
</catalog>
xml2 -新建文件
<catalog>
<book id="bk11">
<author>AuthorName2</author>
</book>
</catalog>
所以我想显示作者被更改为AuthorName2等
xml文件结构未知,但两个文件将具有相同的结构
也看了XNode。DeepEquals,但它也返回是否有差异。但不知道区别是什么。
感谢您的帮助
Compare
方法只返回true
或false
,但是,通过查看文档,差异作为XML文档被写入到diffgram编写器(用于XML Patch)。所以你总是可以解释这个文档并显示你想要的变化