C# XML:如果XmlNodeList.Count>;=1,XmlNodeList.Item(#)是否会为空?
我试图弄清楚,如果我有一个XmlNodeList对象,并且Count大于或等于1,那么它的“Item”对象是否会为null 如果是,我如何在调用其“HasChildNode”属性之前检查它是否为nullC# XML:如果XmlNodeList.Count>;=1,XmlNodeList.Item(#)是否会为空?,c#,xml,C#,Xml,我试图弄清楚,如果我有一个XmlNodeList对象,并且Count大于或等于1,那么它的“Item”对象是否会为null 如果是,我如何在调用其“HasChildNode”属性之前检查它是否为null if (XmlNodeList.Item(0).HasChildNodes) 谢谢,在您给出的示例中,任何项目都不会为null,但通常您会以不同的方式访问这些项目,或者直接通过索引(如果您需要索引): 回答(与事实相反?)的“如果是”问题: if (XmlNodeList.Item(0) !=
if (XmlNodeList.Item(0).HasChildNodes)
谢谢,在您给出的示例中,任何项目都不会为
null
,但通常您会以不同的方式访问这些项目,或者直接通过索引(如果您需要索引):
回答(与事实相反?)的“如果是”问题:
if (XmlNodeList.Item(0) != null && XmlNodeList.Item(0).HasChildNodes)
即使XmlNodeList中没有节点,它也不为null!您可以尝试“计数””方法来检查:
XmlNodeList只是XmlNode的集合。通常,它可以包含空项。
XmlNodeList
是一个抽象类-afaik只选择XmlNode
的方法返回实例,所有这些都保证集合中没有节点是null
。我想您可以创建自己的类,该类是从XmlNodeList
派生的,但我认为这样想不太实际,我也从未见过确实检查null
的示例代码。
XmlNodeList nodes= ..
foreach (XmlNode node in nodes)
{
//do something with node
}
if (XmlNodeList.Item(0) != null && XmlNodeList.Item(0).HasChildNodes)
XmlNodeList TheXmlNodeList = GetMenuItems();
if (TheXmlNodeList.Count > 0)
{
//has node
}
else
{
//do not have node
}