0

我有一个如下的 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
            }

但是,即使文件中包含姓名、姓氏和等级,我也没有得到任何回报。

我究竟做错了什么?

谢谢你的帮助

4

2 回答 2

2

问题是返回的 XML 包括元素标签XElement/XNode.ToString

相反,使用XElement.Value“[获取]此元素的连接文本内容”。

于 2013-09-05T21:52:29.450 回答
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);
于 2013-09-05T21:55:18.323 回答