代码执行时没有任何错误,但{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>
答案 0 :(得分:3)
您忘记将docStrXml
中的值替换为新值:
docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());
答案 1 :(得分:3)
字符串是不可变的,您必须将string.Format的返回值赋给另一个变量。
它将包含带有插入值的新字符串。
docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());
答案 2 :(得分:1)
String.Format方法根据传递给[docStrXml]的字符串参数返回一个字符串,但不直接对其进行操作。您需要将返回值分配给变量,在这种情况下,您将传递给该方法。将您的代码修改为:
docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());
你应该好好去。