c#linq到xml的xml解析问题 - 对未声明实体的引用

时间:2009-07-12 22:15:53

标签: c# xml linq parsing dtd

试着解析一个xml文件会给我以下错误 引用未声明的实体'eacute'

在我创建了一个dtd文件,其中包含了我在http://www.w3.org/TR/xhtml1/dtds.html找到的所有实体,并按如下所示加载了

XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
string s = System.IO.File.ReadAllText(@"..\xhtml-lat1.ent");
XmlParserContext con = new XmlParserContext(null, null, "iti", null, null, s, "", "", XmlSpace.None);
XmlReader reader = XmlReader.Create(stream, settings, con);

加载xdocument

XDocument doc = XDocument.Load(reader);

给我以下异常'='是一个意外的令牌。预期的标记是';'。

请提出任何建议

2 个答案:

答案 0 :(得分:0)

通常,当xml文档格式不正确时会发生此错误。

找到错误的一个提示,在Internet Explorer中打开您的xml文档。如果xml文档格式不正确,Internet Explorer将无法加载整个文档,并会告诉您错误的位置。

答案 1 :(得分:0)

如果我没记错的话,分号在XML中唯一重要的地方是实体编码。我会检查一个不完整的实体(可能是& eacute)或文档中应该编码的特殊字符。