public bool CompareXml(string SourceFile, string DestinationFile, string[] SkipValues = null, string DiffFileNameWithPath = null)
{
try
{
bool bIdentical = false;
//SourceFile = @"C:\FDMXml\NewFile\100W_CheckEndpointOperation_13_27_38.xml";
//DestinationFile = @"C:\FDMXml\OldFile\100W_CheckEndpointOperation_13_27_38.xml";
//SkipValues = XmlSkipValues.XmlSkipValues100W;
string tempFile1 = @"C:\temp\tempfile1.xml";
string tempFile2 = @"C:\temp\tempfile2.xml";
XElement rootFile1 = XElement.Load(SourceFile);
XElement rootFile2 = XElement.Load(DestinationFile);
for (int i = 0; i < SkipValues.Length; i++)//only hot fix operations
{
rootFile1.Element(SkipValues[i]).Remove();
rootFile2.Element(SkipValues[i]).Remove();
}
if (File.Exists(@"C:\temp\tempfile1.xml"))
File.Delete(tempFile1);
if (File.Exists(@"C:\temp\tempfile2.xml"))
File.Delete(tempFile2);
rootFile1.Save(tempFile1);
rootFile2.Save(tempFile2);
if (String.IsNullOrEmpty(DiffFileNameWithPath))
DiffFileNameWithPath = "Diff";
string diffPath = @"C:\FDMXml\" + DiffFileNameWithPath + ".xml";
if (!Directory.Exists(DiffFileNameWithPath))
Directory.CreateDirectory(DiffFileNameWithPath);
StringBuilder differenceStringBuilder = new StringBuilder();
using (FileStream fs = new FileStream(diffPath, FileMode.Create))
{
XmlWriter diffGramWriter = XmlWriter.Create(fs);
//XmlDiff diff = new XmlDiff();
XmlDiff xmldiff = new XmlDiff(XmlDiffOptions.IgnoreChildOrder |
XmlDiffOptions.IgnoreNamespaces |
XmlDiffOptions.IgnorePrefixes);
bIdentical = xmldiff.Compare(tempFile1, tempFile2, false, diffGramWriter);
diffGramWriter.Close();
}
File.Delete(tempFile1);
File.Delete(tempFile2);
StaticTestData.xmlSourceFileName = string.Empty;
return bIdentical;
}
catch (Exception ex)
{
return false;
//throw;
}
}
{
try
{
bool bIdentical = false;
//SourceFile = @"C:\FDMXml\NewFile\100W_CheckEndpointOperation_13_27_38.xml";
//DestinationFile = @"C:\FDMXml\OldFile\100W_CheckEndpointOperation_13_27_38.xml";
//SkipValues = XmlSkipValues.XmlSkipValues100W;
string tempFile1 = @"C:\temp\tempfile1.xml";
string tempFile2 = @"C:\temp\tempfile2.xml";
XElement rootFile1 = XElement.Load(SourceFile);
XElement rootFile2 = XElement.Load(DestinationFile);
for (int i = 0; i < SkipValues.Length; i++)//only hot fix operations
{
rootFile1.Element(SkipValues[i]).Remove();
rootFile2.Element(SkipValues[i]).Remove();
}
if (File.Exists(@"C:\temp\tempfile1.xml"))
File.Delete(tempFile1);
if (File.Exists(@"C:\temp\tempfile2.xml"))
File.Delete(tempFile2);
rootFile1.Save(tempFile1);
rootFile2.Save(tempFile2);
if (String.IsNullOrEmpty(DiffFileNameWithPath))
DiffFileNameWithPath = "Diff";
string diffPath = @"C:\FDMXml\" + DiffFileNameWithPath + ".xml";
if (!Directory.Exists(DiffFileNameWithPath))
Directory.CreateDirectory(DiffFileNameWithPath);
StringBuilder differenceStringBuilder = new StringBuilder();
using (FileStream fs = new FileStream(diffPath, FileMode.Create))
{
XmlWriter diffGramWriter = XmlWriter.Create(fs);
//XmlDiff diff = new XmlDiff();
XmlDiff xmldiff = new XmlDiff(XmlDiffOptions.IgnoreChildOrder |
XmlDiffOptions.IgnoreNamespaces |
XmlDiffOptions.IgnorePrefixes);
bIdentical = xmldiff.Compare(tempFile1, tempFile2, false, diffGramWriter);
diffGramWriter.Close();
}
File.Delete(tempFile1);
File.Delete(tempFile2);
StaticTestData.xmlSourceFileName = string.Empty;
return bIdentical;
}
catch (Exception ex)
{
return false;
//throw;
}
}
No comments:
Post a Comment