4

指定されたノードがファイルに存在するかどうかを確認したい*.xml。私は試してみます:

 string language = node.SelectSingleNode("language") != null ? (node.SelectSingleNode("language").Value == "en" ? "en-US" : "en-US") : "en-US";

しかし、ノード値のみをチェックすると思います。一部のxmlファイルでは、ノードと呼ばれていませlanguageNull Reference Ex..。指定されたノードがファイルに存在するかどうかを確認する方法は*.xml?ありがとう。

4

1 に答える 1

8

何かがnull。の選択した「言語」ノードをチェックしていますがnull、それnode自体はnullですか?

コードをさらに多くの行に広げます。ネストされた?:コードは簡単に理解できず、デフォルト値と関数呼び出しを繰り返す必要がありました。

one for などの変数を使用node.SelectSingleNode("language")して、それを 2 回行わないようにします。そして、これはバグを見つけるのに役立ちます。

string language = "en-US"; //default
if(node!=null)
{
  var langNode = node.SelectSingleNode("language");
  if(langNode!=null)
  {
    //now look at langNode.Value, and overwrite language variable, maybe you wanted:
    if(langNode.Value != "en")
    {
       language = langNode.Value;
    }
  }
}
于 2012-08-17T11:41:55.883 に答える