Wednesday, 17 June 2020

xml merge file

private static void MergeTwoXmlFile(string xmlFile1, string xmlFile2, string mergeFileNameLocation)
        {
            try
            {
                IList<string> duplicateNodes = new List<string>();

                xmlFile1 = @"C:\Ashutosh\Automation\xml files\CellularCheck_BaseLine.xml";
                xmlFile2 = @"C:\Ashutosh\Automation\xml files\CellularCheck_BaseLine_File.xml";
                mergeFileNameLocation = @"C:\Users\asamantr\Source\Repos\ConsoleApp4\ConsoleApp4\Temp";

                XmlDocument doc1 = new XmlDocument();
                XmlDocument doc2 = new XmlDocument();

                XElement rootFile1 = XElement.Load(xmlFile1);
                XElement rootFile2 = XElement.Load(xmlFile2);

                if (File.Exists("" + mergeFileNameLocation + "\\" + "Test_CellularCheck_BaseLine.xml"))
                    File.Delete("" + mergeFileNameLocation + "\\" + "Test_CellularCheck_BaseLine.xml");
                if (!Directory.Exists(mergeFileNameLocation))
                    Directory.CreateDirectory(mergeFileNameLocation);


                doc1.LoadXml(rootFile1.ToString());
                doc2.LoadXml(rootFile2.ToString());
                XmlNodeList list1 = doc1.GetElementsByTagName("root");
                XmlNodeList list2 = doc2.GetElementsByTagName("root");

                foreach (XmlNode node1 in list1)
                {
                    foreach (XmlNode childNode1 in node1.ChildNodes)
                    {
                        foreach (XmlNode node2 in list2)
                        {
                            foreach (XmlNode childNode2 in node2.ChildNodes)
                            {
                                if (childNode1.Name == childNode2.Name)
                                {
                                    duplicateNodes.Add(childNode1.Name);
                                }
                            }
                        }
                    }
                }

                for (int i = 0; i < duplicateNodes.Count(); i++)
                    rootFile2.Element(duplicateNodes[i]).Remove();

                rootFile1.Add(rootFile2.Elements());
                rootFile1.Save(@"C:\Users\asamantr\Source\Repos\ConsoleApp4\ConsoleApp4\Temp\Test_CellularCheck_BaseLine.xml");
            }
            catch (Exception ex)
            {
                //return false;
                //throw;
            }
        }

No comments:

Post a Comment