C# Can';更新Xml文件

C# Can';更新Xml文件,c#,.net,xml,C#,.net,Xml,我正在尝试使用以下代码更新我的xml文件 int i; XmlNodeList list = xdoc.SelectNodes("Sale/SalesLines/SalesLine"); foreach (XmlNode node in list) { for (i = 0; i < count; i++) { node.SelectSingleNode("VatAmount").InnerText = Convert.ToString(datagridv

我正在尝试使用以下代码更新我的xml文件

int i;
XmlNodeList list = xdoc.SelectNodes("Sale/SalesLines/SalesLine");

foreach (XmlNode node in list)
{
    for (i = 0; i < count; i++)
    {
        node.SelectSingleNode("VatAmount").InnerText = Convert.ToString(datagridview.Rows[i].Cells[10].Value);
        xdoc.Save(path);
    }                    
}

因此,我现在使用devexpress网格控件而不是datagrid。有了这些代码,我也面临着同样的问题。请仔细阅读此代码,并尝试提出解决方案。请。

如果我正确理解您想要什么,那么您需要在
foreach
循环中保留一个计数器(而不是循环中的循环)。类似这样的情况(请注意,您仍然应该检查
行[i]
是否存在,或者是否出现异常)

此外,您可能只希望在更新所有节点后保存文档一次

更新:对于第二个示例,您应该遵循类似的模式

DataTable table = ((DataView)gridView1.DataSource).ToTable();
int i = 0;
foreach (XmlNode node in list)
{
    node.SelectSingleNode("VatAmount").InnerText = Convert.ToString(table.Rows[i]["NewVATAmt"]);
    i++;    
}
xdoc.Save(path);

请不要在问题标题中包含有关语言的信息,除非没有它就没有意义。标签就是为了这个目的。谢谢你知道这里有什么问题吗?谢谢老兄。你的代码可以工作。你能为其他代码建议一个修复方案吗?好吧,你应该也能为你的第二个示例使用相同的模式。
int i = 0;
foreach (XmlNode node in list)
{
   node.SelectSingleNode("VatAmount").InnerText = Convert.ToString(datagridview.Rows[i].Cells[10].Value);
   i++;
}

xdoc.Save(path);
DataTable table = ((DataView)gridView1.DataSource).ToTable();
int i = 0;
foreach (XmlNode node in list)
{
    node.SelectSingleNode("VatAmount").InnerText = Convert.ToString(table.Rows[i]["NewVATAmt"]);
    i++;    
}
xdoc.Save(path);