簡體   English   中英

如何自動遞增xml文件版本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM