我正在尝试读取一个XML文档,但不扩展实体,对其进行一些操作,并将其重新保存为最初的未扩展实体。使用XDocument直接操作时,它无法加载并抛出异常,告诉我它有未扩展的实体。
XDocument doc = XDocument.Load(file); // <--- Exception
// ... do some manipulation to doc
doc.Save(file2);
异常:引用未声明的实体“entityname”。
接下来我尝试将 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?