I am trying to read a XML document without expanding the entities, do some manipulations to it, and re-save it with the unexpanded entities as they were initially.
When using the XDocument directly, it fails to load, throwing an exception tell me it has unexpanded entities:
XDocument doc = XDocument.Load(file); // <--- Exception
// ... do some manipulation to doc
doc.Save(file2);
Exception: Reference to undeclared entity 'entityname'.
Then I tried to pass the XmlTextReader
to the XDocument
constructor, but the EntityHandling
property does not have "no expand":
XmlTextReader xmlReader = new XmlTextReader(file));
xmlReader.EntityHandling = EntityHandling.ExpandCharEntities;
XDocument doc = XDocument.Load(xmlReader);
Also, I have looked at the XmlReader.Create function, but MSDN says: "readers created by the Create method expand all entities".
How can I create a XmlReader that does not expand entities, or have a XDocument with entities not expanded?