检查C#中的两个XML文件是否相同?

前端之家收集整理的这篇文章主要介绍了检查C#中的两个XML文件是否相同?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何检查C#中的两个 XML文件是否相同?

我想忽略XML文件中的注释.

解决方法

安装免费的 XMLDiffMerge package from NuGet.这个软件包本质上是微软 XML Diff and Patch GUI Tool的重新包装版本.

如果两个XML文件相同,则此函数返回true,忽略注释,空格和子顺序.作为奖励,它还可以解决差异(参见函数中的内部变量差异).

/// <summary>
/// Compares two XML files to see if they are the same.
/// </summary>
/// <returns>Returns true if two XML files are functionally identical,ignoring comments,white space,and child
/// order.</returns>
public static bool XMLfilesIdentical(string originalFile,string finalFile)
{
    var xmldiff = new XmlDiff();
    var r1 = XmlReader.Create(new StringReader(originalFile));
    var r2 = XmlReader.Create(new StringReader(finalFile));
    var sw = new StringWriter();
    var xw = new XmlTextWriter(sw) { Formatting = Formatting.Indented };

    xmldiff.Options = XmlDiffOptions.IgnorePI | 
        XmlDiffOptions.IgnoreChildOrder | 
        XmlDiffOptions.IgnoreComments |
        XmlDiffOptions.IgnoreWhitespace;
    bool areIdentical = xmldiff.Compare(r1,r2,xw);

    string differences = sw.ToString();

    return areIdentical;
}

以下是我们如何调用函数

string textLocal = File.ReadAllText(@"C:\file1.xml");
string textRemote = File.ReadAllText(@"C:\file2.xml");
if (XMLfilesIdentical(textLocal,textRemote) == true)
{
    Console.WriteLine("XML files are functionally identical (ignoring comments).")
}
原文链接:https://www.f2er.com/csharp/244643.html

猜你在找的C#相关文章