Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
mrECKO
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 8
#1

Прочитать информацию из XML на Android

18.04.2016, 16:34. Просмотров 239. Ответов 2
Метки нет (Все метки)

Нужно вытащить информацию из страницы, которая возвращает XML-файл: https://geocode-maps.yandex.ru/1.x/?...B4%D0%BD%D0%BE
а конкретно, строки <AddressLine>...</AddressLine> (адрес места) и <pos>...</pos>(координаты места).
Написал функции для получения адреса по координатам и наоборот:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
public static String getPlaceName(Coords coords) throws IOException{
        String result = "Unknown place";
        
        double temp = coords.x;
        coords.x = coords.y;
        coords.y = temp;
        
        try {
            URL url = new URL("https://geocode-maps.yandex.ru/1.x/?geocode=" + coords.x + "%20" + coords.y);
            System.out.println(url);
            
            try {
                BufferedReader reader = new BufferedReader (new InputStreamReader(url.openStream(), "UTF-8"));
                String str = reader.readLine();
                while (str != null) {
                    System.out.println(str);
                    str = reader.readLine();
                    if(str != null) {
                        if(str.contains("<AddressLine>")) {
                            try {
                                String[] mas;
                                mas = str.split("<|>");
                                result = mas[2];
                            }
                            catch(Exception ex) {
                                System.out.println(ex.getMessage());
                            }
                            break;
                        }
                    }
                }
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } 
        catch (MalformedURLException ex) {
            ex.printStackTrace();
        }
        return result;
    }
 
public static Coords getPlaceCoords(String placeName) throws IOException {
        Coords result = new Coords();
        placeName = correcter(placeName);
        placeName.replace(" ", "%20");
        
        try {
            URL url = new URL("https://geocode-maps.yandex.ru/1.x/?geocode=" + placeName);
            
            try {
                BufferedReader reader = new BufferedReader (new InputStreamReader(url.openStream(), "UTF-8"));
                String str = reader.readLine();
                while (str != null) {
                    //System.out.println(str);
                    str = reader.readLine();
                    if(str.contains("<pos>")) {
                        try {
                            String[] mas;
                            mas = str.split("<|>");
                            mas = mas[2].split(" ");
                            result.y = Double.parseDouble(mas[0]);
                            result.x = Double.parseDouble(mas[1]);
                        }
                        catch(Exception ex) {
                            System.out.println(ex.getMessage());
                        }
                        break;
                    }
                }
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } 
        catch (MalformedURLException ex) {
            ex.printStackTrace();
        }
        return result;
    }
Проблема в том, что в Eclipse они работают, а на телефоне нет(пишу в Android Studio) - проект вылетает.
Вроде бы проблема в BufferReader.
Как можно вытащить информацию со страницы на android?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2016, 16:34
Ответы с готовыми решениями:

Прочитать и вернуть значение из xml
Добрый день! как начинающий в Java столкнулась с проблемой. Есть xml файл...

Работа с файлами xml на Android. DOM парсер
Сейчас пишу приложение для Android и мне необходимо выполнить чтение данных из...

Java & Flash.Сервек, который считывает из входного потока информацию и потом обрабатывает как XML
Вот написал небольшой сервек который считывает из входного потока информацию и...

Прочитать информацию из файла
Здравствуйте, помогите пожалуйста переделать программу. Нужно чтобы строка...

Прочитать информацию о процессоре
Преподаватель задал задание в последние дни перед сессией - вызвать функцию...

2
Pablito
2665 / 2147 / 729
Регистрация: 12.05.2014
Сообщений: 7,495
Завершенные тесты: 1
18.04.2016, 16:45 #2
1. в андроиде все операции с сетью надо делать в отдельном потоке
2. надо проверить разрешения в манифесте

но глядя на код можно уверенно сказать что надо начинать в пункта №1
1
mrECKO
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 8
18.04.2016, 17:09  [ТС] #3
Паблито, спасибо, вызвал функцию в потоке и все заработало!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2016, 17:09

Как прочитать информацию из файла
Здравствуйте. Есть программа, которая вычисляет определитель матрицы, но у неё...

Как прочитать информацию из файла
Нужно сделать, чтобы программа была способна открыть любой файл, взять из него...

Прочитать из файла информацию о двух городах
Доброго времени суток. Как можно считать 2 города из файла символ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru