Введение в SAX

       

Вызов фильтра


Теперь пришло время использовать фильтр. Первым делом нужно создать новый экземпляр, а затем назначить его предком исходный XMLReader.

Затем установите обработчики содержимого и ошибок фильтра, отличные от обработчиков XMLReader.

Наконец, используйте фильтр для разбора файла вместо XMLReader.

Поскольку XMLReader определен как предок фильтра, он будет по-прежнему обрабатывать информацию.

... public static void main (String args[]) { XMLReader xmlReader = null; try { SAXParserFactory spfactory = SAXParserFactory.newInstance(); spfactory.setValidating(false); SAXParser saxParser = spfactory.newSAXParser(); xmlReader = saxParser.getXMLReader(); SurveyFilter xmlFilter = new SurveyFilter(); xmlFilter.setParent(xmlReader); xmlFilter.

setContentHandler(new SurveyReader()); xmlFilter.

setErrorHandler(new SurveyReader()); InputSource source = new InputSource("surveys.xml"); xmlFilter.

parse(source); } catch (Exception e) { System.err.println(e); System.exit(1); } } ...

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



Содержание раздела