2

以下のコードがありますが、「serving_description」タグがない場合があります。今のところ、try catch を配置しただけですが、このシナリオを処理するためのよりクリーンな方法があるかどうかを知りたいと思っていました。

XmlElement servingElement = (XmlElement)servingNode;
serving.Id = Convert.ToInt32(servingElement.GetElementsByTagName("serving_id")[0].InnerText);
serving.Name = servingElement.GetElementsByTagName("serving_description")[0].InnerText;
4

1 に答える 1

3

デフォルトのtry catchを使用する前に、返されたNodeListnull でないことを確認し、カウントが 0 より大きいことを確認します。

のような単純なもの

serving.Name = "defaultName";
XmlNodeList elemList = servingElement.GetElementsByTagName("serving_description");
if (elemList != null && elemList.Count > 0)
    serving.Name = elemList[0].InnerText;

編集

私が間違っていなければ、GetElementsByTagNameメソッドは空のリストを返すだけかもしれないので、 nullをチェックする必要さえないかもしれません (しかし、今は確認できません、申し訳ありません) 。

于 2010-04-25T05:31:14.357 に答える