如何在c#中检查xDocument是null还是Empty

时间:2016-10-17 11:46:09

标签: c# xml linq-to-xml

我想处理不包含任何数据的空文件 在运行下面的代码后,它会给出错误,例如缺少root元素。

如何检查xDoc是空还是空?

string path = @"E:\Test.xml";
XDocument xDoc = XDocument.Load(path);

1 个答案:

答案 0 :(得分:1)

XDocument.Load需要一个有效的XML文件。否则将抛出异常。在调用XDocument.Load之前,您可以检查文件是否存在或为空。通过

string path = @"E:\Test.xml";
try
{
    XDocument xDoc = XDocument.Load(path);
} catch(Exception) {
   // some problem
}

或者你可以捕获异常。

 var xDoc = MyXDocument.Load(path);
 if (xDoc != null)
 { .... 
 }

public class MyXDocument {
    public static XDocument Load(string path) {
        try
        {
             XDocument xDoc = XDocument.Load(path);
             return xDoc;
        } catch(Exception) {
            return null;
        }
    }
}

如果将此代码放入静态函数中,则代码将更具可读性。

zip.js