【发布时间】:2015-07-14 23:41:26
【问题描述】:
我编写了这段代码来检查 XmlNode 是否有值,但是当我运行它时,它总是在 !=null 上崩溃。 这很奇怪,因为这个解决方案是众所周知的。
private static void TraverseNodes(XmlNodeList nodes)
{
foreach (XmlNode node in nodes)
{
if (!node.HasChildNodes)
{
Console.WriteLine(node.Name + " " + node.Attributes["id"].Value);
}
if (node.Attributes["SplitCombinationOperator"].Value != null)
{
Console.WriteLine(node.Name + " " + node.Attributes["SplitCombinationOperator"].Value);
}
else
{
Console.WriteLine(node.Name);
}
TraverseNodes(node.ChildNodes);
}
}
错误如下: 对象引用未设置为对象的实例。
【问题讨论】:
-
SplitCombinationOperator 可能不存在,而您的代码假定“Value”属性在任何情况下都可用。