Для получения данных используется сторонняя Java-библиотека jsoup. Кроме того, необходимо предоставить приложению доступ в Интернет. Для этого в файл AndroidManifest. xml нужно дописать следующую строку:
В самом классе Parser надо прописать импорт следующих классов:
import java. util. List;
import org. jsoup. nodes. Document;
import org. jsoup. nodes. Element;
import org. jsoup. nodes. Node;
import org. jsoup. parser. CharacterReader;
import org. jsoup. parser. htmlTreeBuilder;
import org. jsoup. parser. ParseError;
import org. jsoup. parser. ParseErrorList;
import org. jsoup. parser. ParseSettings;
import org. jsoup. parser. Tokeniser;
import org. jsoup. parser. TreeBuilder;
import org. jsoup. parser. XmlTreeBuilder;
Информация о расписании университета берется с сайта «bsu.ru», и для начала работы необходимо подключитьсяк нужной странице и получить объект класса Document: получаем данные методом GET.
org. jsoup. nodes. Document doc = Jsoup. connect (" http://bsu.ru/rasp/? g="+groupeNum). get ();
После подключения нужно извлечь требуемую информацию:
Elements elements = doc. select («div. week»); /**разбиваем по неделям**/.
Метод select () позволяет получить нужные теги.
Далее в цикле для каждого элемента списка извлекается нужная информация:
for (Element element: elements) {.
Elements el = element. select («table. rasp_week»);
for (Element element1: el) {.
Elements elements1 = element1. select («td»);
for (Element element2: elements1) {.
Elements day = element2. select («h3. rasp_day»); /*получаем день**/.
for (Element element3: day) {d = element3. text (); }.
Elements time = element2. select («td. rasp_time»); /**время**/.
for (Element element3: time) {t = element3. text (); }.
Elements subj = element2. select («td. rasp_subj»); /**предмет**/.
for (Element element3: subj) {s = element3. text (); }.
Elements type = element2. select («td. rasp_subj_type»); /**тип**/.
for (Element element3: type) {st = element3. text (); }.
Elements aud = element2. select («td. rasp_aud»); /**номер аудит**/.
for (Element element3: aud) {a = element3. text (); }.
Elements week = el. select («table. rasp_week»). prev (); /*№ недели*/.
for (Element element3: week) {w = element3. text (); }.
Elements name = element2. select («td. rasp_aud»). next (); /**следующий элемент после номера аудитории — имя преподователя**/.
for (Element element3: name) {n = element3. text ();
/**если день недели совподает то вывести то формируем список**/.
if (dayOfWeek. equals (d)) {scheduler = w + «» +.
" Время: «+ t + «» + «Название предмета: «+ s + «» + «Тип пары: «+ st +.
" Аудитория: «+ a + «» + «Имя преподавателя: «+ n + ««;
my. add (scheduler); /**добавляем строку в список строк **/.