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>

ここで、これらのノードの 1 つをターゲットにして、それに変更を加えることができるようにします。

私は次のコードを持っています:-

                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メソッドを呼び出す代わりに、Propertyを使用する必要があります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 に答える