Intereting Posts
Совместимость с Android Action от 2.2 до 4.2 Анимированный заставку с использованием .gif Exception 'open failed: EACCES (Permission denied)' на Android Отладка Android WebView с ПК через adb Android mediarecorder записывает только ужасное видео Android, AdMob: обновление объявлений AdMob снижает частоту кадров Фоновое изображение и цвет фона модели Android ConstraintLayout не позволит мне установить ограничение, соединяющее представление с краем экрана Android-Java: location.getTime () возвращает UTC-1 вместо UTC, если текущий часовой пояс включен в «летнее время», Следующие процессы: -cmd.exe -java.exe блокируют следующую директорию: Webcal: // поддержка на Android не работает – есть ли поддерживаемая альтернатива календаря Система аутентификации Android ntlm не поддерживается Предотвращать переход мобильного телефона в спящий режим при запуске приложения Как я могу позволить google maps api v2 перейти прямо к моему местоположению OnKeyListener или OnKeydown не работают, если смотреть на детей

Как читать произвольный XML в универсальный объект в Android?

У меня есть целая куча источников XML, которые мне нужно прочитать. У них нет схем и, хотя они все хорошо сформированы и не содержат ничего, кроме строк, они также не разделяют структуру; Некоторые из них только на одном уровне, другие – несколько, некоторые содержат повторяющиеся блоки / записи, в то время как другие содержат кучу разных блоков, описывающих различные аспекты конкретной записи.

Раньше я использовал javax.xml.parsers.SAXParser с пользовательским обработчиком для ввода XML-данных и использовал его для установки полей пользовательского объекта, что было прекрасно, когда я читал только одну вещь, с фиксированной структурой и номером Записей, которые я знал заранее, и никаких суб-ключей или вспомогательных ключей. В PHP я прочитал бы все это в многомерном ассоциированном массиве, но Java, похоже, не имеет точного эквивалента.

Я предполагаю, что мне нужна какая-то Map или List но я не понимаю, какой тип и как ее использовать. Есть ли стандартный способ Android-y?

Вы можете иметь List Maps для имитации многомерного массива в PHP.

 List<Map<String, String>> multidimArray = new ArrayList<Map<String, String>>(); // This is the first element in Array Map<String, String> map = new HashMap<String, String>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); multidimArray.add(map); 

Существует несколько различных стандартных моделей объектов XML: вы должны использовать один из них. Эта статья Работа с XML на Android дает краткое описание некоторых вариантов для Android. DOM – это объектная модель документа, которая является наиболее широко доступной. Его API отвратителен для работы напрямую, но вы сможете запросить его с помощью XPath , что является удобным синтаксисом для доступа к различным узлам в дереве XML (см. Javax.xml.xpath | Android Developer ).