2012-04-16 2 views
3

Я использую kXML2 в устаревшем проекте JavaME. Я получаю XML, где некоторые атрибуты содержат закодированные entites. Когда я получить это значение атрибута с вызовом:XmlPullParserException атрибут разбора, содержащий объект

parser.getAttributeValue 

Он бросает исключение:

XmlPullParserException: unresolved 

Я скачал последнюю версию этого анализатора, но он все еще показывает это поведение.

Если я удаляю проблемную строку из XML, то ошибок нет.

ответ

2

Хорошо, вот что происходит:

Анализатор должен декодировать объекты в атрибутах, если вы установите это свойство:

parser.setFeature(KXmlParser.FEATURE_PROCESS_DOCDECL, true); 

Но эта реализация генерирует исключение, когда эта линия называется. Хорошо, поэтому я отлаживал исходный код парсера, и я узнал, что эта реализация pull-parser имеет проблемы с объектами, которые не очень распространены.

Так что я должен завышать анализатор сущность замены карты со своими собственными «нечетными» сущностями для того, чтобы работать, как это:

parser.defineEntityReplacementText("Ntilde", "Ñ"); 

И тогда все работает отлично.

Смежные вопросы