Как удалить недопустимые шестнадцатеричные символы из источника данных на основе XML до создания XmlReader или XPathDocument, который использует данные?

Есть ли простой / общий способ очистки источника данных на основе XML перед его использованием в XmlReader, чтобы я мог изящно использовать данные XML, которые не соответствуют ограничениям шестнадцатеричных символов, наложенным на XML?

Замечания:

Решение должно обрабатывать источники данных XML, которые используют кодировки символов, отличные от UTF-8, например указав кодировку символов в декларации документа XML. Главным препятствием стало отсутствие возможности исправления кодировки символов исходного кода во время удаления недопустимых шестнадцатеричных символов.Удаление недопустимых шестнадцатеричных символов должно удалять только шестнадцатеричные закодированные значения, так как вы часто можете найти значения href в данных, которые содержат строку, которая будет совпадением строки для шестнадцатеричного символа.

Фон:

Мне нужно использовать источник данных на основе XML, который соответствует определенному формату (например, Atom или RSS-каналы), но я хочу иметь возможность использовать опубликованные источники данных, которые содержат недопустимые шестнадцатеричные символы в спецификации XML.

В .NET, если у вас есть Stream, который представляет источник данных XML, а затем пытаетесь проанализировать его с помощью XmlReader и / или XPathDocument, возникает исключение из-за включения недопустимых шестнадцатеричных символов в данные XML. Моя текущая попытка решить эту проблему - проанализировать Stream как строку и использовать регулярное выражение для удаления и / или замены недопустимых шестнадцатеричных символов, но я ищу более производительное решение.

Ответы на вопрос(14)

Ваш ответ на вопрос