У нас есть различные XML-файлы, созданные приложением в текущем выпуске. Некоторые из этих файлов, как оказалось, содержат недопустимые символы, что делает их недопустимыми XML-файлами, которые не будут загружаться в большинстве случаев, если вся проверка не отключена, а затем только в XmlDocument
экземплярах, а не XDocument
.
Поскольку это приложение уже там , мы должны справиться с файлами, которые оно производит. Теперь я мог бы добавить к типу Sanitizer
, который знает, что искать и как это исправить, прежде чем пытаться загрузить документ, но я надеялся, что кто-то, возможно, уже приложил усилия для создания чего-то, что, возможно, сделало это уже эффективным способом (например, SanitizedXmlReader
класс).
Этот вопрос затрагивает ту же тему, но я не нашел там удовлетворительного ответа. Все, что мы хотим, - это удалить содержимое, которое является недопустимым в любом месте файла XML (а не данные, которые действительны, скажем, только в CDATA или когда они не используются в QName).
Итак, существует ли такая вещь, которая может взять «почти» файл XML и превратить его в файл «по крайней мере, нет недопустимых символов»? Если нет, то наш собственный вариант - следующий вариант. В этом случае, вместо того, чтобы тратить время на интерпретацию спецификации XML, чтобы определить, какие символы недопустимы во всех ситуациях, есть ли где-нибудь определенный список?