В моем приложении для Android мне нужно извлечь данные из XML-файла (файл будет иметь менее 2000 строк). У меня нет опыта анализа XML, поэтому я не знаю, что такое лучший подход. Парсер DOM, возможно, не очень хороший вариант, потому что я на мобильном устройстве. С другой стороны, с SAX я, вероятно, закончил бы более сложный код. Чтобы вы посоветовали?Какой Java-синтаксический анализатор XML извлекает данные из файла 2000 строк (на мобильном устройстве)
ответ
Зависит именно от того, что вы хотите извлечь, но для небольших документов я не думаю, что DOM слишком плох, и он поставляется в комплекте с JDK (я тоже думаю об андроиде). Для максимального удобства я бы использовал JAXB, чтобы привязываться к Java-компонентам; он использует SAX-анализатор по умолчанию и более эффективен, чем использование DOM-деревьев (а также более простой в использовании).
В противном случае я бы посмотрел на парсеры; Android-корабли с xpp, что нормально, но Woodstox - мой любимый.
Если вы знаете XPath, то это опция. Я не знаю, даст ли вам лучшую производительность по сравнению с парсером.
Для парсеров я бы рекомендовал использовать анализатор SAX. С ним обычно довольно легко работать. Если вы продлеваете DefaultHandler, существует множество функций, которые вы можете переопределить и использовать для своих целей. Некоторые из них включают:
void startElement()
- называется для каждого начального тега, вызов функции проходит также в атрибутах в качестве аргумента
void characters()
- призыв к содержанию внутри тега
void endElement()
- называется для каждого конечного/закрытия тега
См. Ссылку API для получения дополнительной информации.
Существует 3 варианта разбора XML на Android, по умолчанию, DOM, SAX и PullParser. Нет правильного ответа, который лучше всего использовать, это зависит от вашего приложения. Вы можете найти информацию обо всех их here.
Если его что-то произойдет, возможно, стоит использовать SAX или pull parser для повышения эффективности.
Как уже упоминалось, another question similar to this one, есть реализация, подобная JAXB, которая была удалена и хорошо работает с Android. Это называется Simple, и вы можете найти его здесь: http://simple.sourceforge.net/
- 1. Какой лучший синтаксический анализатор XML
- 2. Как безопасно хранить данные на мобильном устройстве?
- 3. Какой способ сохранить пользовательские типы в файле на мобильном устройстве?
- 4. Отладка на мобильном устройстве?
- 5. OutOfMemoryException на мобильном устройстве
- 6. JqGrid на мобильном устройстве
- 7. ScrollTop на мобильном устройстве
- 8. Какой XML-синтаксический анализатор соответствует этим требованиям?
- 9. Программа screencapture на мобильном устройстве
- 10. SAXParser не извлекает данные XML из URL
- 11. Groovy извлекает значение из xml-файла
- 12. GWT извлекает данные XML на сервере
- 13. NSURLSession не извлекает данные из файла plist
- 14. Остановить поворот на мобильном устройстве
- 15. Показать отчеты на мобильном устройстве
- 16. Bootstrap Carousel на мобильном устройстве
- 17. Исправлен фон на мобильном устройстве
- 18. CSS Исчезновение на мобильном устройстве
- 19. Python извлекает данные из xml и сохраняет их в excel
- 20. XML-анализатор для чтения тэгов xml из файла слов C#
- 21. qtip2 отключен на мобильном устройстве
- 22. Какой вики-анализатор?
- 23. Asp.net работает на мобильном устройстве
- 24. Полная картинка на мобильном устройстве
- 25. Ошибка Javascript на мобильном устройстве
- 26. Handsontable edit на мобильном устройстве
- 27. Масштабирование сайта на мобильном устройстве
- 28. AngularJs resposiveness на мобильном устройстве
- 29. jQuery ненадежный на мобильном устройстве
- 30. IdentityServer4 работает на мобильном устройстве
Возможный дубликат: http://stackoverflow.com/questions/1351218/unmarshalling-xml-files-into-java-objects-in-android –