gpt4 book ai didi

c# - 比较两个xml文件并显示差异

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:12 25 4
gpt4 key购买 nike

我正在尝试比较两个 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 方法只返回 truefalse 但是,通过查看文档,差异被写为 XML 文档,到 diffgram 编写器(用于 XML 补丁)。因此,您始终可以解释该文档并显示您想要的更改。

关于c# - 比较两个xml文件并显示差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30504447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com