Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
#1

Выкачать XML с сервера или сайта для последующего парсинга - Android

13.10.2013, 17:51. Просмотров 795. Ответов 6
Метки нет (Все метки)

Подскажите как можно выкачать XML из сайта или сервера?
скорей всего качаться будет с сайта примерный путь www.sitename.com/XML/file.xml
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.10.2013, 19:54     Выкачать XML с сервера или сайта для последующего парсинга #2
HttpGet запросом.
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
21.10.2013, 19:04  [ТС]     Выкачать XML с сервера или сайта для последующего парсинга #3
Цитата Сообщение от V0v1k Посмотреть сообщение
HttpGet запросом.
пытаюсь выкачать файл но прила сразу вылетает
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
public class MainActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        downloadFile();
    }
 
    public void downloadFile(){
 
        try {
            URL url = new URL("http://alexche.zz.mu/data.xml");
            URLConnection conection = url.openConnection();
 
            conection.connect();
            int lenghtOfFile = conection.getContentLength();
            InputStream is = url.openStream();
            File testDirectory = new File(Environment.getExternalStorageDirectory() + "Test");
            if (!testDirectory.exists()) {
                testDirectory.mkdir();
            }
            FileOutputStream fos = new FileOutputStream(testDirectory + "/test.xml");
            byte data[] = new byte[1024];
            int count = 0;
            long total = 0;
            int progress = 0;
            while ((count = is.read(data)) != -1) {
                total += count;
                int progress_temp = (int) total * 100 / lenghtOfFile;
                if (progress_temp % 10 == 0 && progress != progress_temp) {
                    progress = progress_temp;
                }
                fos.write(data, 0, count);
            }
            is.close();
            fos.close();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
а логи указывают на строку conection.connect() , как я понимаю невозможно подключится
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.10.2013, 21:29     Выкачать XML с сервера или сайта для последующего парсинга #4
скорее всего NetworkOnMainThreadException
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
22.10.2013, 17:15  [ТС]     Выкачать XML с сервера или сайта для последующего парсинга #5
Цитата Сообщение от V0v1k Посмотреть сообщение
скорее всего NetworkOnMainThreadException
проблема решена, всё работает корректно!
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
10.11.2013, 16:49  [ТС]     Выкачать XML с сервера или сайта для последующего парсинга #6
вопрос закрыт
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 16:51     Выкачать XML с сервера или сайта для последующего парсинга
Еще ссылки по теме:

Загрузка Xml с сервера и отображение данных в приложении Android
Android Get и Post обязательный атрибут для клиент-сервера Android?
Android Вызов разных фрагментов или активити на клиенте по команде сервера
Android Ошибка парсинга данных
Android XML или JSON

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

Или воспользуйтесь поиском по форуму:
AlexChe
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 4
10.11.2013, 16:51     Выкачать XML с сервера или сайта для последующего парсинга #7
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
package com.example.xmlparser;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
 
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
 
import java.io.IOException;
import java.util.ArrayList;
 
public class MainActivity extends Activity {
    ListView listView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listView = (ListView) findViewById(R.id.lv);
 
        ArrayList<String> list = new ArrayList<String>();
 
        try {
            XmlPullParser parser = getResources().getXml(R.xml.contacts);
 
            while (parser.getEventType()!= XmlPullParser.END_DOCUMENT) {
                if (parser.getEventType() == XmlPullParser.START_TAG
                        && parser.getName().equals("contact")) {
                    list.add(parser.getAttributeValue(0) + " "
                            + parser.getAttributeValue(1) + "\n"
                            + parser.getAttributeValue(2));
                }
                parser.next();
            }
        }
        catch (Throwable t) {
            Toast.makeText(this,
                    "Ошибка при загрузке XML-документа: " + t.toString(), 4000)
                    .show();
        }
 
        listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list));
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}
вот рабочий образец
Yandex
Объявления
10.11.2013, 16:51     Выкачать XML с сервера или сайта для последующего парсинга
Ответ Создать тему
Опции темы

Текущее время: 07:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru