2016-12-14 29 views
1

「Charrizard」が存在するかどうかを確認する必要がありますが、Webを見ていましたが、xElementの属性値と子ノードの例しか見つかりませんでした。私はどこかにそれのよう始まりましxElementの値が存在するかどうかを確認する方法は?

<pokemons> 
    <pokemon> 
    <color>red</color> 
    <name>Charrizard</name> //the content is named value right ?? 
    </pokemon> 
</pokemons> 

XDocument doc = XDocument.Load("pokemons.xml"); 
bool b = doc.Descendants(but don't know how to access the value.).. 

答えて

2
bool b = doc.Descendants("name").Any(x=> x.Value == "Charrizard"); 

あなたはEnumerable.Any

を使用していることを達成するためには、シーケンスの任意の要素が条件を満たしているかどうかを決定します。

ここ

+0

dotNetFiddleで完全な例では、どうもありがとうございました:) 'X => x.Value'、 'X' は '名前' で – tomyforever

+0

? – tomyforever

+0

@tomyforeverしたがって、doc.Descendants( "name")はドキュメントのすべてのXElementを取得し、IEnumerableコレクションに配置します。 doc.Descendants( "name")。ToList()を呼び出すと、TagNameという名前のリストが作成されます。任意の引用符で囲まれたメソッドシーケンスの要素が条件を満たすかどうかを判定します。したがって、私の条件は、IEnumerable の任意の要素であり、値を持たない(ノード値)Charlezardは、falseを返さない場合はtrueを返します。ラムダ式も読んでいるはずです:https://msdn.microsoft.com/en-us/library/bb397687.aspx – mybirthname

関連する問題