C#XML一次删除更多行,但属性值可以更改

我们必须用C#(windows窗体)编写一个代码,将XML文件加载到richtextbox中。 作品

这就是文本字段的样子:

    0     264     48     false     

这是我们要删除它的一部分或将值从false设置为true (您选择的更容易):

   false   

这部分代码可以在每个文本字段中找到,但属性ID的值不同。 我们想为每个文本字段删除它。

我们已经有了这个:

 XDocument xml = XDocument.Load(loadLocation); xml.Descendants().Elements("Hmi.Screen.Property") .Where(e => e.Attribute("Name=").Value == "FitToLargest") .Remove(); xml.Save(loadLocation); 

我们在stackoverflow上找到它,但是它给出了这个错误:

 Error 1 A local variable named 'e' cannot be declared in this scope because it would give a different meaning to 'e', which is already used in a 'parent or current' scope to denote something else C:\Users\*****\*****\*****\Projects\Converter\Converter\Form1.cs 211 37 Converter 

我们可以通过将e更改为例如eJbou来删除错误(Jbou是我的姓名缩写)

我们希望有人可以通过告诉错误的含义来帮助我们,或者通过提供有效的代码来帮助我们。

我希望你在Page_Load这样做,所以检查一下

 protected void Page_Load(object sender, EventArgs e) { 

e包含事件数据所以如果你在任何事件中使用它,那么你必须用x类的东西替换你的e

 XDocument xml = XDocument.Load(loadLocation); xml.Descendants().Elements("Hmi.Screen.Property") .Where(x=> x.Attribute("Name").Value == "FitToLargest") .Remove(); xml.Save(loadLocation); 

试试这个

  XDocument delete = XDocument.Load(@"D:\xxx\Delete.xml"); delete.Descendants("Hmi.Screen.Property").Where( x => (string)x.Attribute("Name") == "FitToLargest").Remove(); //e => e.Attribute("Name").Value == "FitToLargest").Remove(); delete.Save(@"D:\xxxt\xxxx\Delete.xml"); 

该错误意味着已经在lambda表达式之外声明了变量e

我遇到的问题是它在加载时无法找到该文件。 确保bin中的文件 – > debug。 你不能以某种方式加载任何路径。