C# 以XML节点为目标以更改值

C# 以XML节点为目标以更改值,c#,asp.net,xml,linq-to-xml,C#,Asp.net,Xml,Linq To Xml,我有一个XML文件,如下所示:- <Root> <Player> <name>Name</name> <surname>Surname</surname> <rating>10</rating> </Player> <Player> <name>Name1</name> <

我有一个XML文件,如下所示:-

<Root>
   <Player>
      <name>Name</name>
      <surname>Surname</surname>
      <rating>10</rating>
   </Player>
   <Player>
      <name>Name1</name>
      <surname>Surname1</surname>
      <rating>20</rating>
   </Player>
</Root>
然而,我没有得到任何回报,即使名字,姓氏和评级在文件中

我做错了什么

感谢您的帮助

问题在于返回包含元素标记的XML

相反,使用“[获取]此元素的串联文本内容”。

问题是返回包含元素标记的XML


相反,使用“[获取]此元素的串联文本内容”。

您需要使用
XElement.Value
属性,而不是调用
ToString()
方法

doc.Root.Elements("Player").FirstOrDefault(x => x.Element("name").Value == playerInput.name
                                                                && x.Element("surname").Value == playerInput.surname
                                                                && Convert.ToInt32(x.Element("rating").Value) == playerInput.rating);

您需要使用
XElement.Value
属性,而不是调用
ToString()
方法

doc.Root.Elements("Player").FirstOrDefault(x => x.Element("name").Value == playerInput.name
                                                                && x.Element("surname").Value == playerInput.surname
                                                                && Convert.ToInt32(x.Element("rating").Value) == playerInput.rating);

可能不是问题,但您是否有任何特定的理由使用
ToString()
而不是
Value
或(如
(int)(x.Element(“评级”)
)?可能不是问题,但您是否有任何特定的理由使用
ToString()
而不是
Value
或(如
(int)(x.Element(“评级”)
) ?