Доброго вечера!
У меня такая ситуация, что я получаю огромный xml файл и разбиваю его на несколько небольших файлов. Исходный файл представляет из себя огромное количество элементов
<organization>...</organization>
, и каждый такой элемент я делаю отдельным фалом.
Что бы приложение не падало от обработки такого количество данных, я использую класс XmlReader.
Исходный код:
using (XmlReader reader = XmlReader.Create(xmlFile))
{
XElement organization = null;
string exportPath = @"C:\Export..";
reader.MoveToContent();
while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "organization")
{
organization = XElement.ReadFrom(reader) as XElement;
string xmlInside = organization.ToString();
....
}
else
{
reader.Read();
}
}
}
Исключение всплывает на этой строке
organization = XElement.ReadFrom(reader) as XElement;
System.Xml.XmlException: "Reference to undeclared entity 'nbsp'. Line 9, position 70."
То есть в xml встречаются закодированные символы html.
Вопрос, как их обработать?
Видел какое-то решение связанное с использование класса xmlDocument, но мне это не особо подходит, мне в любом случае нужно считать данные из XmlReader, иначе память не справляется, а вот как обработать текст не знаю, не нашел решения.