提问人:leora 提问时间:4/25/2010 最后编辑:ThinkingStiffleora 更新时间:2/27/2013 访问量:451
是否有 GetElementByTagName 来处理标记是否不存在
is there a GetElementByTagName that handles if the tag isn't there
问:
我在下面有以下代码,但有时“serving_description”标签不存在。现在我只是尝试了一下,但我想找出是否有更干净的方法来处理这种情况。
XmlElement servingElement = (XmlElement)servingNode;
serving.Id = Convert.ToInt32(servingElement.GetElementsByTagName("serving_id")[0].InnerText);
serving.Name = servingElement.GetElementsByTagName("serving_description")[0].InnerText;
答:
3赞
Adriaan Stander
4/25/2010
#1
我宁愿检查返回的 NodeList 是否为 null,并在使用默认为 try catch 之前检查计数是否大于零。
一些简单的东西,比如
serving.Name = "defaultName";
XmlNodeList elemList = servingElement.GetElementsByTagName("serving_description");
if (elemList != null && elemList.Count > 0)
serving.Name = elemList[0].InnerText;
编辑
如果我没记错的话,您甚至可能不必检查 null,因为 GetElementsByTagName 方法可能只返回一个空列表(但我现在无法验证,对不起)
评论
1赞
Marc Gravell
4/25/2010
@astander - 从记忆中,我认为你是对的 - 你得到一个空的(但不是空的)节点集。
评论