Предотвращение записи недопустимых символов в RSS-канал

Я работаю над программным обеспечением для ведения блога. Иногда пользователям удается вставить управляющие символы в свои сообщения в блоге (например, недавно кому-то удалось вставить символ вертикальной табуляции ). Когда мы отображаем сообщения в RSS-канале, синтаксические анализаторы XML не могут проанализировать управляющий символ и объявляют канал недействительным.

Один из способов исправить это — выполнить посимвольное сканирование строки и удалить все недопустимые символы. Это будет означать сохранение списка недопустимых символов. Кто-нибудь знает, существует ли уже такой список?

Или, может быть, кто-то знает библиотеку, которая уже решает эту проблему? Я пишу на C#, но могу портировать библиотеку, написанную на другом языке.

Или есть какое-то решение, которое мне не хватает?

Обратите внимание, что это не проблема юникода или экранирования. Лента RSS отлично отображает скобки, китайские иероглифы, крылышки, умные кавычки и т. д. Это просто определенные управляющие символы, которые, кажется, делают ленту недействительной.


person pfitzsimmons    schedule 12.10.2009    source источник


Ответы (2)


Хм. Похоже, на этой странице есть хорошее решение: http://cse-mjmcl.cse.bris.ac.uk/blog/2007/02/14/1171465494443.html

Они получают список допустимых символов из спецификации XML и просто перебирают строку и удаляют недопустимые символы.

person pfitzsimmons    schedule 12.10.2009

Взгляните на инфраструктуру Argotic для создания RSS-каналов. Библиотека очень хорошо со всем справляется.

person Agent_9191    schedule 12.10.2009