读取xml文件并访问可选节点

Gee*_*eth 0 c# xml

我使用以下代码从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
} 
Run Code Online (Sandbox Code Playgroud)

错误:对象引用未设置为对象的实例.

其他选择:工作

        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;
                }
            }
Run Code Online (Sandbox Code Playgroud)

Ale*_*ort 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;
        }
    } 
Run Code Online (Sandbox Code Playgroud)