BExISMigration.MetadataCreator.createMissingNodes C# (CSharp) Method

createMissingNodes() private method

private createMissingNodes ( string destinationParentXPath, XmlNode parentNode, XmlDocument doc, string name ) : XmlNode
destinationParentXPath string
parentNode System.Xml.XmlNode
doc System.Xml.XmlDocument
name string
return System.Xml.XmlNode
        private XmlNode createMissingNodes(string destinationParentXPath, XmlNode parentNode, XmlDocument doc, string name)
        {
            string dif = destinationParentXPath;

            List<string> temp = dif.Split('/').ToList();
            temp.RemoveAt(0);

            XmlNode parentTemp = parentNode;

            foreach (string s in temp)
            {
                if (BExIS.Xml.Helpers.XmlUtility.GetXmlNodeByName(parentTemp, s) == null)
                {
                    XmlNode t = BExIS.Xml.Helpers.XmlUtility.CreateNode(s, doc);

                    parentTemp.AppendChild(t);
                    parentTemp = t;
                }
                else
                {
                    XmlNode t = BExIS.Xml.Helpers.XmlUtility.GetXmlNodeByName(parentTemp, s);

                    if (temp.Last().Equals(s))
                    {
                        if (!t.Attributes["name"].Equals(name))
                        {
                            t = BExIS.Xml.Helpers.XmlUtility.CreateNode(s, doc);
                            parentTemp.AppendChild(t);
                        }

                    }

                    parentTemp = t;
                }
            }

            return parentTemp;
        }