0

我有一个看起来像这样的 xml 模板:

<?xml version="1.0" encoding="utf-8" ?>
 <EmailTemplate>
   <subject></subject>
   <displayName></displayName>
   <Message1>
   </Message1>
   <Copyright></Copyright>
 </EmailTemplate>

我正在使用 LINQ 在方法执行时将值写入元素。在我写入值后,我使用 xslt 转换并以相同的方法获取 html 输出。一切正常。但我想要的是我希望这个 xml 看起来像上面。我的意思是在方法成功执行后元素不应该包含任何值。目前,一旦执行该方法,xml 就会包含值。我写入 xml 的代码如下所示:

        var xmlElement = XElement.Load(@"myxmlfile.xml");

        var element3 = xmlElement.Elements("subject").Single();
        element3.Value = subject;

        var element4 = xmlElement.Elements("displayName").Single();
        element4.Value = displayName;

        xmlElement.Save(@"myxmlfile.xml");

注意:如果我在转换过程中不包括最后一行(xmlelement.save ...),则不会获取值。欢迎任何帮助和建议。

4

1 回答 1

0

删除对 的调用Save。只需在内存中编辑 XML。该Save方法用于修改磁盘上的 XML 文件。如果您不希望那样,请不要调用该Save方法。

如果每次需要创建 HTML 时都需要 XML 的新副本,那么我建议将 XML 文件的字符串内容加载到内存中,这样您就不必每次都从磁盘读取,并使用aStringReader创建XML 文档

根据您提供的代码,您似乎不需要每次都加载新的 XML 文档,因为您只需用新值覆盖内存中的现有值。

于 2013-03-24T04:00:51.667 回答