2012-05-07 18 views
0

xmlファイルをチェックしていくつかの要素が存在するかどうかを確認するにはどうすればよいですか?c#xmlの要素をチェックする

if ("wind_condition") {do something}

+0

尋ねられていた内容を把握するために編集する必要がありました。私はそれを得ることを望む。 – Robaticus

+0

google for xpath C# –

+0

xmlの子ノードを読むときに読んでください。 http://www.kirupa.com/forum/showthread.php?292473-Reading-Child-nodes-from-XML-file-C – Brian

答えて

2

ファイルをワードwind_conditionが含まれている場合、これは決定されます。あなたは、ルートノードがxml_api_replyあるのでwind_condition

if(xml.Descendants("wind_condition").Count() > 0) 
{ 
    // do something 
} 
+0

OPは文字列ではなく要素を探しています。 – zimdanen

+0

質問( 'いくつかの要素が存在するかどうかを調べるためにXMLファイルをチェックする方法')とコメント( 'wind_condition'要素を探しています)には要素が必要です。 – zimdanen

+0

あなたが正しい場合に備えて、私は答えにもっと多くを加えました。 –

4

試してみてください:

いるXmlNodeListリスト= xml.SelectNodesを(私は言葉 "wind_condition" が存在するかどうかを確認したい

http://www.google.com/ig/api?weather=vilnius&hl=eng

:たとえば、私はからXMLを持っています"// wind_condition");

次に、返されたリストをチェックし、それに応じて処理します。

+0

+1:テストされ、動作します。 – zimdanen

2

あなたは、LINQのツーXML(未テスト)を使用して、文書を照会するために、このようなものを使用することができます。

XDocument xdoc = XDocument.Load("http://www.google.com/ig/api?weather=vilnius&hl=eng"); 
XElement[] myElements = xdoc.Root.Element("weather") 
    .Elements() 
    .Where(xelement => xelement.Element("wind_condition") != null) 
    .ToArray(); 
+0

XMLの例は 'forecast_information'ではなく' current_conditions'に 'wind_condition'を持っています。 – zimdanen

+1

@zimdanen良いキャッチ。 ** Elements()**を使用して天気*のすべての子供を選択するための私の答えを更新しました。 – McGarnagle

2

要素は、次はあなたに私はちょうどそれをテストし、それが動作しているようだ(存在しwind_conditionかどうかをブール値を返す必要がありますしたい場合は

if(xml.ToString().Contains("wind_condition")) 
{ 
    // do something 
} 

var result = (from t in loadedData.Descendants("xml_api_reply") 
        select t.Descendants("wind_condition").Any()).Single(); 

if(result) // equals to if wind_condition exists 
{ 
} 
+0

+1:テスト済みで動作します – zimdanen

関連する問題