Язык XML - практическое введение



       ремонт iphone в калининграде: отзывы в интернете. |   

Решения и исправления - часть 2


br>

Обычно достаточно простого цикла, аналогичного приведенному в листинге 1. Данную функцию можно применять более эффективно, но листинг 1 синтаксически корректен, если документ создается для потока UTF-8 или UTF-16 (в противном случае необходимо также передать некоторые символы за счет использования символьных сущностей).

Листинг 1. Применение стандартного алгоритма избегания

// assumes UTF-8 or UTF-16 as encoding, public String escape(String content) { StringBuffer buffer = new StringBuffer(); for(int i = 0;i < content.length();i++) { char c = content.charAt(i); if(c == '<') buffer.append("<"); else if(c == '>') buffer.append(">"); else if(c == '&') buffer.append("&"); else if(c == '"') buffer.append("""); else if(c == '\'') buffer.append("'"); else buffer.append(c); } return buffer.toString(); }

Некоторые разработчики предпочитают использовать секции CDATA вместо управляющей последовательности. CDATA - это механизм, который показывает, что часть документа может содержать незаменяемые зарезервированные символы. Например: <condition>< ! [CDATA [a > 4] ] > < / condition>. Этот способ менее надежен, чем управляющая последовательность, т.к. одна секция CDATA не может включать другую такую же секцию.

В качестве еще одного решения автор рекомендует преобразователь (transformer), для чего предлагает познакомиться со своей статьей "Реализация XMLReader" (Implement XMLReader).




Содержание  Назад  Вперед