XElement.Load读取&符号和特殊国家/地区字符时出错

我在读取XML文件中的&符号时遇到问题:

XElement xmlElements = XElement.Load(Path_Xml_Data_File); 

我有错误时收到错误:

 Patrick & Phill Error: Name cannot begin with the ' ' character, hexadecimal value 0x20. Xml.XmlException) A System.Xml.XmlException was thrown: "Name cannot begin with the ' ' character 

或者使用特殊葡萄牙字符:

 Direcção Assistida (= Direcção Assistida) Error: Reference to undeclared entity 'ccedil' 

知道怎么解决这个问题吗?

我担心你正在处理格式错误的XML。

要表示&符号,您加载的数据应使用“&” 实体。

ç (ç)和ã (ã)命名实体不是XML标准的一部分,它们更常见于HTML中(尽管它们可以通过使用DTD添加到XML中)。

您可以先使用HtmlTidy来整理数据,或者您可以编写一些内容将裸露的&符号转换为传入文件中的实体。

例如:

 public string CleanUpData(string data) { var r = new Regex(@"&\s"); string output = r.Replace(data, "& "); output = output.Replace("ç", "ç"); output = output.Replace("ã", "ã"); return output; }