Java SAX: разбор XML-файла на лету

Я пытаюсь получить информацию из XML-файла на Java с помощью SAX.

Я нашел несколько примеров с классом, который реализует интерфейс ContentHandler, и он хорошо работает, когда я запускаю метод синтаксического анализа для всего файла, правильно сформированного с помощью класса XmlReaderFactory.

Но моя цель - проанализировать файл XML на лету, например, из стандартного ввода, я хотел бы получить разметку XML-информации с помощью разметки, например:

> <foo>
markup = foo
> <bar a="baz">
markup = bar
attribute a = baz
> </bar>
end markup bar
> </foo>
end markup foo

Но когда я шаг за шагом передаю эти входные данные парсеру, он останавливается на первой записи и говорит

[Fatal Error] :1:10: XML document structures must start and end within the same entity.

Есть ли решение для этого. Мне разрешено использовать SAX только для этого :-( для моего школьного упражнения.

Спасибо за вашу помощь,

Артур.


person Arthur    schedule 15.04.2011    source источник


Ответы (1)


ваша разметка недействительна xml. в частности, элемент foo заканчивается до элемента bar

<foo>
<bar>
</foo>
</bar>

если разметка была правильной, вы сможете делать то, что вам нравится.

person MeBigFatGuy    schedule 15.04.2011
comment
Это не проблема (я исправил свой пример), программа вылетает, когда я набираю ‹foo›. - person Arthur; 16.04.2011
comment
Какой поток вы передаете методу XMLReader.parse? - person MeBigFatGuy; 16.04.2011
comment
новый источник ввода (System.in); ?? - person MeBigFatGuy; 16.04.2011