Проблема в использовании потокового ридера - PullRequest
0 голосов
/ 06 января 2010

У меня есть XML-данные в виде строки, которую нужно проанализировать. Я преобразую XML-строку во входной источник, используя следующий код:

StringReader reader1 = new StringReader( xmlstring);
InputSource inputSource1= new InputSource( reader );

И я передаю источник ввода

Документ doc = builder.build (inputSource);

Я хочу использовать тот же inputSource1 и в другом классе синтаксического анализатора, но поток закрывается.

Как бы я справился с этим или есть какой-либо другой способ передачи XML-данных в анализатор, отличный от файла?

1 Ответ

3 голосов
/ 06 января 2010

Глядя на JavaDoc, кажется, что InputSource не предназначен для совместного использования и повторного использования несколькими анализаторами.

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

Так что вам придется создать новый InputSource. Если вы действительно читаете с String, в любом случае не будет никакой разницы в стоимости ввода-вывода или стоимости памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...