我有一个从XML文件中提取数据的foreach循环,但有些字段是空白的。当循环尝试拉取特定值时,它有时会获得空引用异常。有没有办法单独输出具有空值的变量并将其设置为空字符串,同时以有效的方式显示所有其他值?为了这个例子,我们假设地址字段返回空值。
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(id);
XmlNodeList person = xmldoc.SelectNodes("//parent/child");
foreach (XmlNode node in person)
{
try
{
var name = node["name"].InnerText;
var phone = node["phone"].InnerText;
var email = node["email"].InnerText;
var address = node["address"].InnerText;
lblPopulate2.Text = name;
lblPopulate7.Text = address;
lblPopulate5.Text = phone;
lblPopulate6.Text = email;
}
catch(NullReferenceException ex)
{
???
}
finally
{
}
答案 0 :(得分:2)
如果地址节点不存在,您可以使用null conditional operator返回null,否则使用InnerText
。
var address = node["address"]?.InnerText;
然后null coalescing operator用于设置Text
属性:
lblPopulate7.Text = address ?? string.Empty;