XDocument异常:缺少根元素

时间:2014-07-30 11:43:47

标签: c# xml linq-to-xml

我有一个简单的XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<Config>
<NumOfBytesInRow>20</NumOfBytesInRow>
<FirstBaudRate>115200</FirstBaudRate>
<SecondBaudRate>34800</SecondBaudRate>
<DefaultPort>COM1</DefaultPort>
<NumOfTries>2</NumOfTries>
</Config>

我正在尝试获取这些元素,但是一旦我打开文件,我就会发现缺少根元素的异常

XDocument doc = new XmlDocument();
        doc.Load(path);

修改

我已添加:

if(File.Exists("D:\\BBConfig.xml"))

在加载之前它找到了文件但仍然是同样的错误

2 个答案:

答案 0 :(得分:3)

对于第一个我发现user3890766的答案非常好:“如果方法找不到该文件,则可能抛出此异常”。但是你可以肯定地试试这个:

    string strXml;
    try
    {
        using (StreamReader sr = new StreamReader("myXML.xml"))
        {
             strXml = sr.ReadToEnd();
        }

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(strXml);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }

答案 1 :(得分:2)

如果方法找不到该文件,则可能抛出此异常。您需要检查您的应用程序是否可以在给定路径中找到该文件,并具有阅读它的权限。

可以肯定的是,您可以使用Stream,然后查看Length。然后将XmlDocument.Load与此Stream一起使用。