以 XML 节点为目标以更改值
本文关键字:XML 节点 目标 | 更新日期: 2023-09-27 18:30:16
我有一个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>
现在,我希望以这些节点之一为目标,以便可以对其进行一些更改。
我有以下代码:-
XElement playerXML =
doc.Root.Elements("Player").FirstOrDefault(x => x.Element("name").ToString() == playerInput.name
&& x.Element("surname").ToString() == playerInput.surname
&& Convert.ToInt32(x.Element("rating")) == playerInput.rating);
if (playerXML != null)
{
//do processing
}
但是,即使姓名,姓氏和评级在文件中,我也没有得到任何回报。
我做错了什么?
感谢您的帮助
问题是XElement/XNode.ToString
返回包含元素标记的 XML。
相反,使用 XElement.Value
来"[获取]此元素的串联文本内容"。
您需要
使用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);