Java XMLStreamReader.getText() душит символы в кодировке XML?
Я пытаюсь проанализировать гигантский (> 1 ГБ) XML-файл, используя XMLStreamReader Java. Я использую метод getText() для извлечения содержимого узла. У меня есть XML-файл, закодированный как ISO-8859-1, а некоторые символы имеют специальную кодировку, например &
кодируется как &
в файле.
Так что, если файл содержит, например:
<person>Jack</person>
<person>Jill</person>
<persons>Jack & Jill</persons>
И я пытаюсь получить содержимое каждого узла с помощью getText(), 3-й узел только возвращает Jack
, В любое время &xxx;
встречается символ, никакие символы после него (в том же узле) не анализируются или не возвращаются.
В чем проблема? Правильно ли закодирован XML-файл? Я правильно использую парсер Java?
Спасибо!
1 ответ
Я подозреваю, что проблема в том, что парсер разделил содержимое элементов от третьего лица на несколько событий обработки. (Это поведение next()
задокументировано.) getText()
только дает вам текст для текущего события.
Попробуйте использовать getElementText()
вместо.