Чтение Xml-Файла С Помощью App Inventor

Всем привет. Эту тему я хочу посвятить Google App Inventor (далее просто изобретатель), с которым я думаю вы знакомы по предыдущим темам других людей.

Его обвиняют в малом функционале.

Я тоже так думал, и когда он только запустился, я смог сделать только пару безделушек.

Но когда я на днях зашёл в Inventor, то был приятно удивлён, ведь июньское обновление добавило много интересных блоков, таких как: Интернет, TinyWebDB, TinyDB, Notifier. В этой теме мы рассмотрим, как можно прочитать XML-файл на примере получения кармы пользователя (я решил использовать этот пример после того, как один из пользователей написал тему про Python и SL4A).

Мы не будем подробно рассматривать интерфейс; это легко понять как есть.

Сначала покажу, какая схема у нас в итоге получится:

Чтение XML-файла с помощью App Inventor



Добавление компонентов
Откройте в браузере страницу appinventor.googlelabs.com, создайте новый проект и добавьте в макет экрана следующие компоненты: Web, Notifier, Button, Label, TextBox, если необходимо, то измените на них метки.

У меня получилось вот так:

Чтение XML-файла с помощью App Inventor



Создание переменных
Откройте редактор блоков (кнопка справа вверху) и приступим к созданию блоков кода.

Сначала вам нужно создать две переменные: lworking и lCopyofWorking .

Переменные создаются следующим образом: Слева проходим по вкладкам меню Встроенный Определение и перетащить переменная определения в рабочую зону.

Обе переменные будут иметь тип список , так что пойдем Встроенный Списки и перетащите дважды Составить список в переменные.

Затем вам нужно добавить два типа элементов в переменную списка.

текст ( Встроенный Текст ) со значением > и <.

Вот что должно было произойти:

Чтение XML-файла с помощью App Inventor



Обработка нажатия кнопки
Обработку нажатия кнопок можно найти в Мои блоки Кнопка1 , этот блок называется Кнопка1.Нажмите .

Переместите его в свою рабочую зону.

Что будет делать щелчок? Необходимо убедиться, что при нажатии на кнопку устанавливается url для запроса XML-файла и отправляется сам запрос.

Для этого перейдите в Мои блоки Веб1 и перетащите блоки в рабочую область установить Web1.Url И позвоните в Web1.Get , затем вставьте их в Кнопка1.Нажмите .

Теперь нам нужно создать свой URL, для чего нам нужны блоки присоединиться ( Встроенный Текст ), текст (там же), в который нужно ввести значение час ttp://habrahabr.ru/api/profile/ И TextBox1.Текст ( Мои блоки Текстовое поле1 ).

Из их названия, думаю, понятно, что они делают и в каком порядке их располагать.

Вот как я это сделал:

Чтение XML-файла с помощью App Inventor



Получение и открытие XML
Добавьте блок в рабочую область Web1.GotText ( Мои блоки Веб1 ).

Этот блок срабатывает при успешном выполнении команды.

Web1.URL и получен ответ от сервера.

Сначала нужно разбить текст, используя такую конструкцию:

Чтение XML-файла с помощью App Inventor

Первый блок устанавливает значение переменной (она находится в Мои блоки Мои определения ).

Второй разбивает текст ответСодержимое с использованием lКопияРабочей .

(Полученный текст будет примерно логин под ником /login karma 66 /karma .

).

После этого нужно проверить, существует ли такой пользователь.

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

Чтение XML-файла с помощью App Inventor

Думаю здесь с назначением блоков все понятно.

если еще находится в Встроенный Контроль .

содержит В Встроенный Текст .

Глобальный В Мои блоки Мои определения .

Теперь нам нужно просмотреть все элементы листа.

работаю используя функцию для каждого ( Встроенный Контроль ).

Вот как это выглядит:

Чтение XML-файла с помощью App Inventor

Эту конструкцию необходимо заменить на еще-сделай .

Остается только узнать, есть ли в текущем случае тег кармы и вывести его значение.

Вы можете узнать это с помощью того, что мы уже знаем.

содержит , если (находится там же, где и ifelse), текст /карма и переменная рабочий элемент2 что-то вроде этого:

Чтение XML-файла с помощью App Inventor

Все! Остается только отобразить значение кармы, что мы и сделаем с помощью функции Notifier1.ShowAlert ( Мои блоки Уведомитель1 ).

Ничего сложного в этом нет, поэтому мы рассмотрим лишь построение текста сообщения:

Чтение XML-файла с помощью App Inventor

Как видите, эта задача оказалась для меня довольно громоздкой.

С присоединиться вы уже знакомы, не будем на этом останавливаться.

А вот со второй частью надо разобраться.

выбрать элемент списка ( Встроенный Списки ), как следует из названия, выбирает элемент на листе работаю .

К аргументу индекс прикрепите функцию вычитания ( Встроенный Математика ), в котором будет вычтена позиция текущего тега ( /карма ) тип переменной число ( Встроенный → Математика ) со значением 1. Функция определения положения текущего тега называется позиция в списке и находится в Встроенный Списки .



Завершение
Соединяем наши блоки как показано на первом скриншоте и тестируем.



Чтение XML-файла с помощью App Inventor

Как видите, на самом деле App Inventor — не такая уж безделушка, которая, на первый взгляд, годится только для создания мяукающего кота.

Урок, вдохновивший на создание этой статьи Загрузите приложение:

Чтение XML-файла с помощью App Inventor

Теги: #Android #App Inventor #karma #xml #разработка для Android

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.