无效的程序集XML文件

时间:2010-10-21 18:53:31

标签: c# .net xml


我正在尝试使用此ocde读取XML文档文件(C#)             输入classType = typeof(Point);

        string documentationFileLocation = classType.Assembly.CodeBase;
        if ( !string.IsNullOrEmpty(documentationFileLocation) && documentationFileLocation.StartsWith("file:///") )
        {
            documentationFileLocation = documentationFileLocation.Replace(".exe",".xml");
            documentationFileLocation = documentationFileLocation.Replace("file:///","");
            if(File.Exists(documentationFileLocation))
            {

                XElement document = XElement.Load(documentationFileLocation);
                // Some Code Logic Here using LINQ
            }
            else
            {
                Console.WriteLine("Please Go to Project Properties->Build and check 'XML Documentation file'");

我在XElement document = XElement.Load(sr)之后有一个LINQ查询,它正在工作,
所以我在LINQ查询中放了一个断点,我收到了这个错误 -
XmlException - 根级别的数据无效。第1行,位置1.

我该如何解决?

编辑:稍微更改了代码 - 刚刚删除了StreamReader

2 个答案:

答案 0 :(得分:2)

嗯,听起来好像它不是一个有效的XML文件。

如果您打印出sr.ReadToEnd()的结果而不是打电话给XElement.Load,它会是什么样子?如果您尝试将文件加载到XML编辑器中,会发生什么?

顺便说一句,最好使用using语句而不是明确调用Dispose:使用当前代码,如果StreamReader抛出异常,则不会处置Load

最后,您是否有任何理由不仅仅使用XElement.Load(documentationFileLocation)

答案 1 :(得分:1)

您是否尝试过XDocument.Load()而非使用XElement?如果文件以XML声明<?xml ...开头,则在尝试从中加载元素时可能会出现此错误。

编辑:您在pastebin上粘贴的文件没有指定编码。您可以尝试在记事本中打开此文件并将其重新保存为ANSI,看看它是否加载?只是为了确保我们没有编码或BOM问题。