我正在尝试在不扩展实体的情况下读取 XML 文档,对其进行一些操作,然后像最初一样使用未扩展的实体重新保存它。
直接使用 XDocument 时,加载失败,抛出异常告诉我它有未扩展的实体:
XDocument doc = XDocument.Load(file); // <--- Exception
// ... do some manipulation to doc
doc.Save(file2);
例外:对未声明实体“实体名称”的引用。
然后我尝试将 传递XmlTextReader
给XDocument
构造函数,但该EntityHandling
属性没有“无扩展”:
XmlTextReader xmlReader = new XmlTextReader(file));
xmlReader.EntityHandling = EntityHandling.ExpandCharEntities;
XDocument doc = XDocument.Load(xmlReader);
另外,我查看了 XmlReader.Create 函数,但 MSDN 说:“由 Create 方法创建的阅读器扩展所有实体”。
如何创建一个不扩展实体的 XmlReader,或者创建一个未扩展实体的 XDocument?