Фильтрация недопустимых символов XML в Java

Спецификация XML определяет подмножество символов Unicode, которые позволяются в XML-документах: http://www.w3.org/TR/REC-xml/#charsets.

Как я отфильтровываю эти символы от Строки в Java?

простой тестовый сценарий:

  Assert.equals("", filterIllegalXML(""+Character.valueOf((char) 2)))

10
задан Grzegorz Oledzki 24 May 2010 в 12:54
поделиться

4 ответа

Найти все недопустимые символы для XML нетривиально. Вам необходимо вызвать или повторно реализовать XMLChar.isInvalid () из Xerces,

http://kickjava.com/src/org/apache/xerces/util/XMLChar.java.htm

5
ответ дан 4 December 2019 в 03:38
поделиться

Использование StringEscapeUtils.escapeXml (xml) из commons-lang приведет к экранированию, а не фильтрации символов.

0
ответ дан 4 December 2019 в 03:38
поделиться

Эта страница включает метод Java для удаления недопустимых символов XML путем проверки соответствия каждого символа спецификации, хотя он не проверяет крайне нежелательные символы

Кстати, экранирование символов не является решением проблемы, поскольку спецификации XML 1.0 и 1.1 также не допускают использование недопустимых символов в экранированном виде.

1
ответ дан 4 December 2019 в 03:38
поделиться

Вы можете использовать регулярное выражение (Regular Expression) для выполнения работы, см. Пример в комментариях здесь

-1
ответ дан 4 December 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: