【发布时间】:2010-08-17 15:38:36
【问题描述】:
我正在尝试在不扩展实体的情况下读取 XML 文档,对其进行一些操作,然后将其与最初未扩展的实体一起重新保存。
直接使用 XDocument 时,加载失败,抛出异常告诉我它有未展开的实体:
XDocument doc = XDocument.Load(file); // <--- Exception
// ... do some manipulation to doc
doc.Save(file2);
例外:引用未声明的实体“实体名称”。
然后我尝试将XmlTextReader 传递给XDocument 构造函数,但是EntityHandling 属性没有“no expand”:
XmlTextReader xmlReader = new XmlTextReader(file));
xmlReader.EntityHandling = EntityHandling.ExpandCharEntities;
XDocument doc = XDocument.Load(xmlReader);
另外,我查看了 XmlReader.Create 函数,但 MSDN 说:“由 Create 方法创建的阅读器扩展所有实体”。
如何创建一个不展开实体的 XmlReader,或创建一个包含未展开实体的 XDocument?
【问题讨论】:
标签: .net xml entity linq-to-xml xmlreader