Выстроенный потоком xml строитель / парсер в Android? - PullRequest
1 голос
/ 21 октября 2009

Я изучаю Android api из книги, и кажется, что нет никакого упоминания о stream-lined api для работы с raw xml (чтение и письмо). Он предлагает парсинг XmlPullParser, и его примеры выглядят ужасно, учитывая тип api's, которым я избалован на других платформах (особенно LINQ to XML).

Это лучшая из доступных техник на Android platform?

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

Кроме того, он даже не упоминает о создании xml structures в коде. Какие у меня варианты для обоих?

В дополнение к этому, знают ли разработчики Java, знакомые с LINQ to XML in .Net, что-нибудь эквивалентное в Java?

Ответы [ 3 ]

2 голосов
/ 22 октября 2009

Поскольку вы, вероятно, не хотите загружать какие-либо модули DOM существенного размера в память Android, парсеры pull и SAX являются предпочтительным способом работы с XML в Android. Я думаю, что стоит инвестировать в понимание того, как работает SAX и писать собственный обработчик, а не полагаться на некоторые общие библиотеки, которые могут быть несовместимы или перегружены. Я анализирую XML в своих приложениях, используя SAX все время, и я очень доволен скоростью (большую часть времени)

2 голосов
/ 21 октября 2009

Ну, я довольно новичок в 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/library/x-android/index.html

1 голос
/ 22 октября 2009

У меня были те же проблемы с синтаксическим анализом xml или xhtml, и я написал веб-сервис, делающий это для меня.

Android Device ->(Request URL) -> Webservice Get and Parse -
-> (Data) -> Android Device

Вы можете передавать данные в формате JSON для работы с ним на устройстве. Преимущество этого состоит в том, что вы можете минимизировать трафик в медленной мобильной сети и изменить синтаксический анализ, не выпуская новое приложение для Android.

Может быть, это будет работать и для вас.

привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...