0

次のようなxmlテンプレートが1つあります。

<?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ファイルの文字列の内容をメモリにロードして、毎回ディスクから読み取る必要がないようにし、を使用しStringReader作成することをお勧めします。 XMLドキュメント

提供したコードに基づくと、メモリ内の既存の値を新しい値で上書きするだけなので、毎回新しいXMLドキュメントをロードする必要はないようです。

于 2013-03-24T04:00:51.667 に答える