winforms 如何将xml中的更改集成回.idml文件

y1aodyip  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(96)

我在InDesign中创建了一个模板,并将其导出到扩展名为.idml和. xml的文件中。之后,我把这些文件到我的项目的根。我想做的是以编程方式填充xml文件的基础上标签槽的代码,并在此之后得到这些变化,我的模板,所以最终用户可以看到前端的变化。
导出的xml文件如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root>
  <makeFirstAd>new value for makeFirstAd</makeFirstAd>
</Root>

字符串
下面是我的部分代码在c#有关更新xml文件是工作

private void button1_Click(object sender, EventArgs e)
        {
            string updatedValue = "new value for makeFirstAd";
            UpdateMakeFirstAdValue(updatedValue);
        }

        public void UpdateMakeFirstAdValue(string updatedValue)
        {
            try
            {
                // Get the path to the XML file located in the root of the project
                string xmlFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CarIndexBrochure.xml");

                // Step 1: Read the XML file
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(xmlFilePath);

                // Step 2: Update the value of <makeFirstAd> element
                XmlNode makeFirstAdNode = xmlDoc.SelectSingleNode("/Root/makeFirstAd");
                if (makeFirstAdNode != null)
                {
                    makeFirstAdNode.InnerText = updatedValue;
                }

                // Step 3: Save the updated XML
                xmlDoc.Save(xmlFilePath);
            }
            catch (Exception ex)
            {
                // Handle any exceptions that may occur during the process
                Console.WriteLine("An error occurred: " + ex.Message);
            }
        }


如何将此更改返回到模板,以便当用户想要打开模板时,他可以直观地看到更改?

pokxtpni

pokxtpni1#

你是说像这样的东西吗

var prefs = app.xmlImportPreferences;
prefs.importStyle = XMLImportStyles.MERGE_IMPORT;

var xml_file = File('/Users/me/temp/test.xml');
app.activeDocument.importXML(xml_file);

字符串
它更新了当前的INDD文件。然后,您可以将其保存为IDL模板

var idml_file = File('/Users/me/temp/test.idml');
app.activeDocument.exportFile(ExportFormat.INDESIGN_MARKUP, idml_file);

相关问题