public static void CreateXML( )
{
    // Start by making an XmlDocument
    XmlDocument xmlDoc = new XmlDocument( );
    // create a root node for the document
    XmlElement addrBook = xmlDoc.CreateElement("AddressBook");
    xmlDoc.AppendChild(addrBook);
    // create the Tim contact
    XmlElement contact = xmlDoc.CreateElement("Contact");
    contact.SetAttribute("name","Tim");
    contact.SetAttribute("phone","999-888-0000");
    addrBook.AppendChild(contact);
    // create the Newman contact
    contact = xmlDoc.CreateElement("Contact");
    contact.SetAttribute("name","Newman");
    contact.SetAttribute("phone","666-666-6666");
    addrBook.AppendChild(contact);
    // create the Harold contact
    contact = xmlDoc.CreateElement("Contact");
    contact.SetAttribute("name","Harold");
    contact.SetAttribute("phone","777-555-3333");
    addrBook.AppendChild(contact);
    // Display XML
    Console.WriteLine("Generated XML:\r\n{0}",addrBook.OuterXml);
    Console.WriteLine( );
}
это если у тебя уже выделены узлы и т.д. в противном случае тебе надо парсер делать чтобы их выделить.
Если потом тебе надо этот xml в файл записать - можно воспользоваться xml сериализацией.
создаешь объект с открытыми членами, и указываешь специализированные атрибуты.
В MSDN все есть, если надо будет примерчик по сериализации могу попозже скинуть.