Оптимизированный построитель/парсер XML в Android?

StackOverflow https://stackoverflow.com/questions/1600225

  •  05-07-2019
  •  | 
  •  

Вопрос

я изучаю 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.

Возможно, это подойдет и вам.

с уважением

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top