当Word保存它时,为什么我的自定义XML不会继续传送到DOCX文件的新版本?

| 我正在向docx添加一些自定义XML,以便在我正在编写的应用程序中跟踪它。 我已经通过ZIP库和正式的Open XML SDK路线打开Word文档来手动完成此操作。两者都具有将我的XML插入文档的customXml文件夹中的相同结果。对于这两种方法,该文档都可以在Word中很好地打开,并且存在XML。 但是当我将文档另存为MyDoc2.docx时,例如所有XML都不见了。 我究竟做错了什么? 我一直关注的Microsoft链接: http://msdn.microsoft.com/en-us/library/bb608597.aspx http://msdn.microsoft.com/en-us/library/bb608612.aspx 我从Open XML SDK 2.0中获取的代码是:
public static void AddNewPart(string document, string fileName)
{
    using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true))
    {
        MainDocumentPart mainPart = wordDoc.MainDocumentPart;

        CustomXmlPart myXmlPart = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml);

        using (FileStream stream = new FileStream(fileName, FileMode.Open))
        {
            myXmlPart.FeedData(stream);
        }
    }
}
谢谢, 约翰     
已邀请:
        好的,因此我设法在openxmldeveloper.org上找到以下文章“使用自定义XML部件作为DataStore”,并去除了不必要的代码,以便其插入并保留自定义XML:
static void Main(string[] args)
{
    using (WordprocessingDocument doc = WordprocessingDocument.Open(\"Test.docx\", true, new OpenSettings()))
    {
        int customXmlPartsCount = doc.MainDocumentPart.GetPartsCountOfType<CustomXmlPart>();

        if (customXmlPartsCount == 0)
        {
            CustomXmlPart customXmlPersonDataSourcePart = doc.MainDocumentPart.AddNewPart<CustomXmlPart>(\"application/xml\", null);
            using (FileStream stream = new FileStream(\"Test.xml\", FileMode.Open))
            {
                customXmlPersonDataSourcePart.FeedData(stream);
            }


            CustomXmlPropertiesPart customXmlPersonPropertiesDataSourcePart = customXmlPersonDataSourcePart
                                                                              .AddNewPart<CustomXmlPropertiesPart>(\"Rd3c4172d526e4b2384ade4b889302c76\");

            Ds.DataStoreItem dataStoreItem1 = new Ds.DataStoreItem() { ItemId = \"{88e81a45-98c0-4d79-952a-e8203ce59aac}\" };
            customXmlPersonPropertiesDataSourcePart.DataStoreItem = dataStoreItem1;
        }
    }
}
因此,只要您不修改文件,Microsoft的所有示例都可以使用。问题似乎是因为我们没有设置与主文档的关系。     

要回复问题请先登录注册