2014-01-22 4 views
0

Я получаю org.xml.sax.SAXParseException: в содержимом элемента документа был найден недопустимый символ XML (Unicode: 0x12). ошибка на стороне клиента. Может кто-то сказать, что такое регулярное выражение, используя java.util.regex.Pattern для замены таких символов, чтобы я мог исключить на стороне сервера.Ошибка анализа XML Ошибка

пытался ..

ШАБЛОН = Pattern.compile ("\ 0012");

но не работает

+0

Возможный дубликат: https://stackoverflow.com/questions/10148145/need-to-find-invalid-xml-parts –

ответ

0

Если вам нужно найти какую-то литералную строку с материалом, в котором может возникнуть проблема с парсером регулярных выражений, используйте Pattern.quote() вокруг литерала.

Кроме того, вы используете восьмеричную кодировку, а не юникодную - вы забыли u после \.

В этом случае:

шаблон шаблон = Pattern.compile (Pattern.quote ("\ u0012"));

Примечание: Я не пробовал этот конкретный случай!

+0

Это сработало, также шаблон PATTERN = Pattern.compile ("\ u0012"); – java1977

+1

@ java1977 Я думал, что это возможно, но я так часто забываю о спецификациях регулярных выражений, которые я использую для цитаты() всякий раз, когда возникает какой-либо вопрос. Быстрее писать, чем читать все, и в отличие от меня, никогда не ошибается. –

+0

, что полезно знать, спасибо Эд. – java1977

1

Большинство "управляющие символы" (< 32 ASCII) не являются законными в XML 1.0. Некоторые из них : legal in XML 1.1. Если ваши пользователи ожидают, что они будут поддерживаться, вы можете захотеть убедиться, что используете парсер, который может обрабатывать новую Рекомендацию.

Смежные вопросы