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; }