[英]How to auto increment xml file version
我有一個XML文件,我想在用戶每次單擊btnNewfile
時增加版本號。
它必須從1000
開始並增加到1
。 我也對哪個版本必須增加或兩者都感到困惑。 問題是嘗試調試時出現此錯誤的格式:
輸入的字符串格式不正確。
如何增加它?
XML:
<resheader name="version">
<value>2.0</value>
</resheader>
我試過的
private void btnNewfile_Click(object sender, EventArgs e)
{
int current = 1000;
current++;
var versionNumber = doc.Descendants("value").FirstOrDefault();
current = (int)versionNumber;
versionNumber.SetValue(current + 1); //error here;Input string was not in a correct format.
lbl_Output_Version.Text = versionNumber.ToString();
}
問題來了,因為我有這兩個:
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> // i only want to update this one
當我調試時,它正在使用"text/microsoft-resx"
獲取第一個,並且在此之后引發錯誤。
因為您的字符串包含.0
,所以使用decimal
代替int
。 另外,您需要獲取Value
,而不是要轉換的整個元素。 你也可以用Where
,選擇你想要的確切項目。
XElement versionNumber = doc.Descendants("resheader")
.Where(x => x.Attribute("name").Value == "version")
.Descendants("value")
.First();
decimal current = Convert.ToDecimal(versionNumber.Value, CultureInfo.InvariantCulture);
versionNumber.SetValue(Math.Max(1000, current + 1));
因為您想從1000
開始,所以我添加了Math.Max
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.