static void Main(string[] args) { XmlDocument doc = new XmlDocument(); Node root = new Node(); string input = "<root>" + "<node id=\"1\">" + "<nodeName>node1</nodeName>" + "<node id=\"2\">" + "<nodeName>node2</nodeName>" + "<node id=\"21\">" + "<nodeName>node21</nodeName>" + "</node>" + "<node id=\"22\">" + "<nodeName>node22</nodeName>" + "</node>" + "</node>" + "<node id=\"3\">" + "<nodeName>node3</nodeName>" + "<node id=\"31\">" + "<nodeName>node31</nodeName>" + "</node>" + "</node>" + "<node id=\"4\">" + "<nodeName>node4</nodeName>" + "<node id=\"41\">" + "<nodeName>node41</nodeName>" + "</node>" + "</node>" + "</node>" + "</root>"; XElement element = XElement.Parse(input); doc = new XmlDocument(); doc.LoadXml(element.ToString()); XmlNode node = (XmlNode)doc; root.AddNode(node, root); }