Анализ недействительных амперсандов с помощью XmlPullParsers от Android

Я пишу небольшое приложение для скриншотов, которое потребляет XHTML – само собой разумеется, что XHTML недействителен: амперсанды не экранируются как & ,

Я использую XmlPullParser Android, и он извергает следующую ошибку при некорректно закодированном значении:

 org.xmlpull.v1.XmlPullParserException: unterminated entity ref (position:START_TAG <a href='/Fahrinfo/bin/query.bin/dox?ld=0.1&n=3&i=9c.0323581.1266265347&rt=0&vcra'> @55:134 in java.io.InputStreamReader@43b1ef70) 

Как мне обойти это? Я подумал о следующих решениях:

  1. Обтекание InputStream в другом, которое заменяет амперсанды на ref ref
  2. Конфигурирование анализатора, так что он волшебным образом принимает неверную разметку

Какие из них, вероятно, будут более успешными?

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

Я застрял на этом около часа, прежде чем выяснять, что в моем случае «&» не удалось разрешить с помощью XML PULL PARSER, поэтому я нашел решение. Итак, вот фрагмент кода, который полностью его исправляет.

 void ParsingActivity(String r) { try { parserCreator = XmlPullParserFactory.newInstance(); parser = parserCreator.newPullParser(); // Here we give our file object in the form of a stream to the // parser. parser.setInput(new StringReader(r.replaceAll("&", "&amp;"))); // as a SAX parser this will raise events/callback as and when it // comes to a element. int parserEvent = parser.getEventType(); // we go thru a loop of all elements in the xml till we have // reached END of document. while (parserEvent != XmlPullParser.END_DOCUMENT) { switch (parserEvent) { // if u have reached start of a tag case XmlPullParser.START_TAG: // get the name of the tag String tag = parser.getName(); 

В значительной степени, что я делаю, я просто заменяю & &amp; Так как я имел дело с разбором URL. Надеюсь это поможет.

Intereting Posts
Какая связь существует между innerRadiusRatio и толщинойRatio класса GradientDrawable? Основные шаги для использования MQTT в android Android: как получить пользовательский атрибут XML в классе Activity Неожиданная строка состояния: ICY 200 OK для метода URL openStream ()? Как остановить сеанс в Google mobile analytics v2 для Android без использования EasyTracker Домены Android / FQDN Мобильное приложение: как показать OTP мое приложение отправляет всплывающее окно, не выходя из моего приложения? Сделать предпочтение отключенным, но регистрировать клики Невозможно обновить студию Android 2.0 до версии 2.1 Как я могу изменить ручку управления курсором EditText цвета (а не цвет курсора на ручке) RecyclerView прогностические анимации элементов не работают (ПОЯВЛЕНИЕ) Откройте ссылку в веб-браузере вместо браузера по умолчанию. Ошибка R.id.togglebutton1 и более Карта Google не отображается в действии вкладок Admobs нуждается в разрешениях, которые у меня уже есть