1

コードはエラーなしで実行されますが、{0}と{1}はString.Formatで宣言された値に置き換えられません

FileStream fs = new FileStream(xmlFile.FullName, FileMode.Open, FileAccess.Read);
XmlDocument doc = new XmlDocument();
doc.Load(fs);

 string docStrXml = doc.InnerXml.ToString();
 String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());

 triggerDocument.LoadXml(docStrXml);
 triggerDocument.Save(directoryPathOfNewXml + "\\" + xmlFile.Name);

新しいファイルは問題なく保存されます。基本的に、私はxmlファイルを開いており、ドキュメントに文字列を挿入したいと思います。これが最初のドキュメントです(そして、変更されていないので最後のドキュメントでもあります):

<?xml version="1.0" encoding="utf-8" ?>
<Package
    source="http://localhost/Service/Master/{0}/{1}/"
    triggerseturl="http://localhost/Service/Master/{0}/{1}/client.xml">
  <File name="client_full.xml"/>
  <File name="client_half.xml"/>
</Package>
4

3 に答える 3

3

docStrXmlの値を新しい値に置き換えるのを忘れました:

docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());
于 2012-11-28T00:56:50.743 に答える
3

文字列は不変です。string.Format の戻り値を別の変数に割り当てる必要があります。

値が挿入された新しい文字列が含まれます。

docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());
于 2012-11-28T00:58:29.277 に答える
1

String.Format メソッドは、渡された文字列引数 [docStrXml] に基づいて文字列を返しますが、直接操作しません。戻り値を変数に割り当てる必要があります。この場合は、メソッドに渡すものと同じです。コードを次のように変更します。

docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());

そして、あなたは行く準備ができているはずです。

于 2012-11-28T01:00:34.757 に答える