XML - удаление нелегальных символов из XML-документа - PullRequest
0 голосов
/ 06 ноября 2011

У меня есть XML-документ, который содержит специальные символы, такие как '%', возврат каретки, перевод строки, &, <,>, ', ". Я попытался закодировать весь XML-документ, но его не удалось загрузить при использовании xmldocument .load метод в C #.

Каков наилучший способ удалить эти специальные символы без необходимости жесткого кода для замены недопустимых символов соответствующими ссылками на сущности?

Ответы [ 2 ]

5 голосов
/ 06 ноября 2011

Откуда берется не совсем XML-документ?Вы должны сосредоточиться на исправлении источника документа, чтобы он создавал правильный XML.Все преимущества использования XML будут потеряны, если люди начнут посылать материалы, которые являются почти XML, но не совсем - вы могли бы также использовать полностью проприетарный формат.

5 голосов
/ 06 ноября 2011

Короткий ответ: XML-подобный документ с недопустимыми символами не является допустимым XML-документом, и его необходимо сделать допустимым.

У вас есть два возможных исправления.Первое, о чем вы уже намекали, - заменить недопустимые символы на сущности.Второе - обернуть любой контент недопустимыми символами в разделы CDATA;вам не придется иметь дело с какими-либо проблемами кодирования содержимого в этих разделах.

Если ни один из этих вариантов не подходит, вам нужно будет выяснить, как анализировать документ с помощью анализатораэто не заботится о недопустимых символах, что, вероятно, является плохой идеей, и ее следует избегать, если это вообще возможно.

...