sax: проблема с разбором текста со смешанным содержимым - PullRequest
1 голос
/ 05 июля 2011

У меня проблемы с частью XML-файла.Я анализирую его с помощью sax и java.
Мне не удается получить все части текста (начало текста, середина текста, конец текста).

<sometag type="aType">  
     beginning of the text          
     <anothertag type="anotherType" target="aTarget">middle of the text</anothertag>
     end of the text
</sometag>

Ответы [ 2 ]

2 голосов
/ 05 июля 2011

Все портят реализацию ContentHandler characters, потому что он совершенно не интуитивно понятен. Хитрость в том, что может быть несколько вызовов метода символов для одного текстового узла элемента, вы должны накапливать переданные фрагменты в буфере. См. Учебник по Java для SAX. Для смешанного содержимого вы должны получить текст из буфера в startElement и endElement.

Если это не отвечает на ваш вопрос, покажите нам код.

1 голос
/ 05 июля 2011

SAX часто удивляет, пока вы не знаете, чего ожидать от опыта.

Возможно, вы захотите временно добавить некоторые записи консоли в обработчики событий или даже просто поставить их все точки останова, и настроить небольшой тест, чтобы увидеть, что вы получаете. Я предпочитаю регистрироваться в таком случае, потому что это дает мне «общую картину» того, что я могу ожидать.

FWIW, Stax немного проще и похожее по производительности.

...