0

好的,所以我的工作陷入了困境。我有一个要更改的 xml 文档。每次下载文件时,该值都必须更改。所以基本上当文件 A 完成下载 version.xml 有一个我想从“0”更改为“1”的 id。现在有了这个,我终于可以按照我想要的方式设置我的启动器了。

private void GetNextNodeID()
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(@"version.xml");
        var x = doc.GetElementsByTagName("Product");
        int Max = 0;



        Max++
        XmlElement newElement = doc.CreateElement("Product");
        newElement.SetAttribute("id", Max.ToString());

        doc.Save(@"version.xml");

    }

这里也是xml文档

<Table>
<Product>
<Product>0</Product>
<Product_name>Vitare</Product_name>
<Product_version>1.0.0.1</Product_version>
</Product>
</Table>

现在由于某种原因,代码永远不会与 xml 文件混淆,请帮我弄清楚如何增加值!!!!!!!!!!!!

谢谢你,德文马加罗

4

1 回答 1

2

目前,您正在使用文档创建一个新元素,但从未将其实际添加到文档中。您还尝试设置一个属性,之前您在元素本身中拥有文本。

假设您真的只想更新元素,我个人会使用 LINQ to XML 而不是XmlDocument

var doc = XDocument.Load("version.xml");
// Single() ensures there's only one such element
var element = doc.Descendants("Product").Single(); 
int currentValue = (int) element;
element.SetValue(currentValue + 1);
doc.Save("version.xml");

如果要更新所有 Product元素,则应使用循环doc.Descendants("Product")进行foreach循环。

于 2013-07-23T22:01:21.690 回答