我使用以下代码从xml文件中检索数据。它工作正常。
问题:如果节点不可用,则会产生问题。如何检查节点的可用性。
例如:某些记录没有描述时间显示对象引用未设置为对象的实例。错误。
代码:
XmlDocument doc = new XmlDocument();
doc.Load("C:\\Books.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("/NewDataSet/booksdetail");
foreach (XmlNode node in nodes)
{
string pages = node["pages"].InnerText;
string description = node["Description"].InnerText; // Error
}
错误:对象引用未设置为对象的实例。
其他选项:工作
string pages = "0";
string description = "";
foreach (XmlNode node in nodes)
{
foreach(XmlNode childNode in node)
{
switch (childNode.Name.ToString())
{
case "pages":
pages = node["pages"].InnerText;
break;
case "Description":
description = node["Description"].InnerText;
break;
}
}
答案 0 :(得分:5)
XmlDocument doc = new XmlDocument();
doc.Load("C:\\Books.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("/NewDataSet/booksdetail");
foreach (XmlNode node in nodes)
{
string pages = node["pages"].InnerText;
string description = null;
if(node["Description"]!= null)
{
description = node["Description"].InnerText;
}
}
答案 1 :(得分:0)
在检索值之前,检查node
null
。