Есть ли простой/общий способ очистки источника данных на основе XML до его использования в XmlReader, чтобы я мог изящно потреблять XML-данные, которые не соответствуют шестнадцатеричным ограничениям символов, помещенным в XML?
Примечание:
- Решение должно обрабатывать XML источники данных, которые используют характер кодирование, отличное от UTF-8, например. от с указанием кодировки символов в объявление документа XML. Не искажение кодировки символов источник при отключении шестнадцатеричные символы были основная точка крепления.
- Удаление недействительных шестнадцатеричных символов должно только удалять шестнадцатеричные закодированные значения, так как вы часто можете найти значения href в данных, которые происходят, содержит строку, которая будет соответствовать строке для шестнадцатеричного символа.
Фон:
Мне нужно использовать источник данных на основе XML, который соответствует определенному формату (думаю, Atom или RSS-каналы), но хочет иметь возможность использовать источники данных, которые были опубликованы, которые содержат недопустимые шестнадцатеричные символы в спецификации XML.
В .NET, если у вас есть Stream, представляющий источник данных XML, а затем попытайтесь его проанализировать с помощью XmlReader и/или XPathDocument, исключение возникает из-за включения недопустимых шестнадцатеричных символов в XML-данных. Моя текущая попытка решить эту проблему состоит в том, чтобы проанализировать поток как строку и использовать регулярное выражение для удаления и/или замены недопустимых шестнадцатеричных символов, но я ищу более эффективное решение.