“/”字符十六进制值0x2F的XmlException不能包含在名称中

时间:2010-01-12 21:52:17

标签: c# xmlexception

如何解决生成的异常?

        public static string[] getKeywords(string filename)  
        {  
            var xmlFile = new XElement(filename);  
            string[] keywords = xmlFile.Elements("Keyword")
                                       .Attributes("name")
                                       .Select(n => n.Value).ToArray();  
            return keywords;  
        } 

这会产生此异常:

  

System.Xml.XmlException未处理     Message ='/'字符,十六进制值0x2F,不能包含在名称中。     源=的System.Xml

2 个答案:

答案 0 :(得分:5)

new XElement(filename)表示创建一个名称来自filename的元素 - 您的意思是XElement.Load(filename) ??

答案 1 :(得分:2)

您试图将文件名加载为XML,因此它抛出异常。这就是你想要的;

    public static string[] getKeywords(string filename)
    {
        var xmlFile = XElement.Load(filename);
        string[] keywords = xmlFile.Elements("Keyword").Attributes("name").Select(n => n.Value).ToArray();
        return keywords;
    }

使用XElement.Load()方法。