XML元素不显示空值

时间:2015-11-16 12:56:39

标签: c# asp.net .net xml

我正在使用xml文件使用以下代码

导入数据库

CS:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(pathPMO + "Data.xml");
XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("/DocumentElement/Profile");
bool insertProfile = false;
foreach (XmlNode node in nodeList)
   {
     strYear = node.SelectSingleNode("Profile_x0020_Year").InnerText;
     strID = node.SelectSingleNode("Profile_x0020_ID").InnerText;
     strLead = node.SelectSingleNode("Profile_x0020_Leader").InnerText;
     insertProfile = ImportProfile(strYear, strID, strLead);
    } 

例如,某些行的配置文件前导值为空,当我尝试插入它们时,由于少数行中缺少该特定元素,因此出现错误object not set to an instance of an object

有谁能建议如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您应该确保每个XmlNode对象都不为null。你可以使用这样一个简单的方法:

 private string GetXmlNodeString(string nodeName, XmlNode node)
 {
  if(String.IsNullOrWhiteSpace(nodeName))
     return String.Empty;

  var singleNode = node.SelectSingleNode(nodeName);

  if(singleNode ==null)
     return String.Empty;

  return singleNode.InnerText;
}

然后改变你的代码:

foreach (XmlNode node in nodeList)
{
 strYear = GetXmlNodeString("Profile_x0020_Year",node);
 strID =  GetXmlNodeString("Profile_x0020_ID",node);
 strLead = GetXmlNodeString("Profile_x0020_Leader",node);
 insertProfile = ImportProfile(strYear, strID, strLead);
}