Open XML SDK 2.0


Staff member
I'm trying to follow <a href="" rel="nofollow">this</a> tutorial to made a Word doc template that i can manipulate using C#. But i always get the following error: "The name 'mainPart' does not exist in the current context open XML". I'm using Open Xml 2.0.

Any idea of what am i missing?

        using System;
        using System.IO;
        using DocumentFormat.OpenXml.Packaging;


        Console.WriteLine("Starting up Word template updater ...");

        //get path to template and instance output
        string docTemplatePath = @"C:\Users\user\Desktop\Doc Offices XML\earth.docx";
        string docOutputPath = @"C:\Users\user\Desktop\Doc Offices XML\earth_Instance.docx";

        //create copy of template so that we don't overwrite it
        File.Copy(docTemplatePath, docOutputPath);

        Console.WriteLine("Created copy of template ...");

        //stand up object that reads the Word doc package
        using (WordprocessingDocument doc = WordprocessingDocument.Open(docOutputPath, true))
            //create XML string matching custom XML part
            string newXml = "&lt;root&gt;" +
                "&lt;Earth&gt;Outer Space&lt;/Earth&gt;" +

            MainDocumentPart main = doc.MainDocumentPart;

            //add and write new XML part
            //CustomXmlPart customXml = main.AddNewPart&lt;CustomXmlPart&gt;();
            CustomXmlPart customXml = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml);
            using (StreamWriter ts = new StreamWriter(customXml.GetStream()))


            //closing WordprocessingDocument automatically saves the document