Я пытаюсь прочитать документ XML без расширения сущностей, выполнить некоторые манипуляции с ним и повторно сохранить его с нерасширенными сущностями, какими они были изначально.
При использовании непосредственно XDocument, он не загружается, выдавая исключение, сообщающее, что у него есть нерасширенные сущности:
XDocument doc = XDocument.Load(file); // <--- Exception
// ... do some manipulation to doc
doc.Save(file2);
Исключение: ссылка на необъявленную сущность 'entityname'.
Затем я попытался передать XmlTextReader
в Конструктор XDocument
, но свойство EntityHandling
не имеет «без раскрытия»:
XmlTextReader xmlReader = new XmlTextReader(file));
xmlReader.EntityHandling = EntityHandling.ExpandCharEntities;
XDocument doc = XDocument.Load(xmlReader);
Также я рассмотрел функцию XmlReader.Create, но MSDN говорит: «средства чтения, созданные методом Create, расширяют все сущности».
Как создать XmlReader, который не раскрывает сущности, или иметь XDocument с не развернутыми сущностями?