我有一个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
}
然而,即使名称,姓氏和评级都在档案中,我也没有得到任何回报。
我做错了什么?
感谢您的帮助
答案 0 :(得分:2)
问题是XElement/XNode.ToString
返回XML,包括元素标记。
相反,请使用XElement.Value
“[获取]此元素的连接文本内容”。
答案 1 :(得分:1)
您需要使用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);