Оптимизированный построитель/парсер XML в Android?
Вопрос
я изучаю Android api
из книги, и кажется, что там нет никакого упоминания о stream-lined api
для борьбы с raw xml
(чтение и письмо).Его предложение по синтаксическому анализу XmlPullParser
, и его примеры выглядят ужасно, учитывая тип api's
Я избалован другими платформами (LINQ to XML
особенно).
Это лучшая доступная техника на Android platform
?
Очевидно, я могу написать обертку, чтобы избежать повторяющихся действий, но я был бы удивлен, если бы такой вещи еще не существовало.
Кроме того, он даже не упоминает о создании xml structures
в коде.Каковы мои варианты для обоих?
Кстати, сделайте что-нибудь Java
разработчики, знакомые с LINQ to XML in .Net
знаете что-нибудь эквивалентное на Java?
Решение
Поскольку вы, вероятно, не хотите загружать какие-либо DOM существенного размера в память Android, парсеры pull и SAX являются предпочтительным способом работы с XML в Android. Я думаю, что стоит инвестировать в понимание того, как работает SAX и писать собственный обработчик, а не полагаться на некоторые общие библиотеки, которые могут быть несовместимы или перегружены. Я анализирую XML в своих приложениях, используя SAX, и очень доволен скоростью (большую часть времени)
Другие советы
Ну, я довольно новичок в Java, но вот что я почерпнул из анализа XML на Android:
Подход XmlPullParser рекомендуется для Android из-за нехватки ресурсов. В Android есть анализатор DOM, который позволит вам использовать XPath для навигации по документу XML. Однако использование DOM означает, что вы должны загрузить весь документ в память одновременно. Метод XmlPullParser намного эффективнее с точки зрения используемой памяти.
Метод XmlPullParser требует некоторого привыкания после того, как он освоился с LINQ to XML или XPath, но на самом деле он не так уж и плох (по крайней мере с документами, которые я анализировал). Если вы работаете с небольшими XML-документами, вы, безусловно, можете использовать DOM с XPath.
Здесь есть достойная статья о различных методах чтения и записи XML с Android: http://www.ibm.com/developerworks/opensource/ библиотека / х-андроид / index.html р>
У меня были те же проблемы с анализом xml или xhtml, и в итоге я написал веб-сервис, который делал это за меня.
Android Device ->(Request URL) -> Webservice Get and Parse -
-> (Data) -> Android Device
Вы можете передать данные в формате JSON для работы с ними на устройстве.Преимущество этого в том, что вы можете минимизировать трафик в медленной мобильной сети и изменить синтаксический анализ, не выпуская новое приложение для Android.
Возможно, это подойдет и вам.
с уважением