显示除空引用对象之外的所有值

时间:2017-08-11 16:30:29

标签: c# asp.net xml ado

我有一个从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
            {
            }

1 个答案:

答案 0 :(得分:2)

如果地址节点不存在,您可以使用null conditional operator返回null,否则使用InnerText

var address = node["address"]?.InnerText;

然后null coalescing operator用于设置Text属性:

lblPopulate7.Text = address ?? string.Empty;