powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Android xml из сети
15 сообщений из 15, страница 1 из 1
Android xml из сети
    #38678126
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оснакомился с этим уроком http://startandroid.ru/ru/uroki/vse-uroki-spiskom/142-urok-79-xmlpullparser-parsim-xml.html

вроде всё нормально. Но мне надо распарсить xml из сети http://www.boi.org.il/currency.xml

тоесть надо его скачать для начала?

Подскажите плиз как изменить код из урока!?
...
Рейтинг: 0 / 0
Android xml из сети
    #38678136
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostarтоесть надо его скачать для начала?
Верно и качать в другом потоке (thread). Пример(ы) http://stackoverflow.com/questions/9671546/asynctask-android-example
...
Рейтинг: 0 / 0
Android xml из сети
    #38680696
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробывал вот так:
Код: 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.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
package com.andrik.simpleproject;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

	private static final String TAG = "myLogs";
	TextView myTextView;
	Button clickButton;
	String _value = "";
	String sResponse = null;
	StringBuilder sbResponse;
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        getURLContent("http://www.boi.org.il/currency.xml");
        
        myTextView = (TextView) findViewById(R.id.myTextView);
        clickButton = (Button) findViewById(R.id.clickButton);
        
        
        clickButton.setOnClickListener(this);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
    	menu.add("Sector 1");
    	menu.add("Sector 2");
    	menu.add("Sector 3");
    	menu.add("Sector 4");
    	
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    public void getURLContent(String p_sURL)
    {
        URL oURL;
        URLConnection oConnection;
        BufferedReader oReader;
        String sLine;
       // StringBuilder sbResponse;
      //  String sResponse = null;

        try
        {
        	 myTextView.setText("Hello PEOPLE!!!!" + p_sURL);
            oURL = new URL(p_sURL);
            oConnection = oURL.openConnection();
            oReader = new BufferedReader(new InputStreamReader(oConnection.getInputStream()));
            sbResponse = new StringBuilder();

            while((sLine = oReader.readLine()) != null)
            {
                sbResponse.append(sLine);
            }

            sResponse = sbResponse.toString();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

      //  return sResponse;
    }

    public boolean onOptionsItemSelected(MenuItem item) {
    	Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
        return super.onOptionsItemSelected(item);	
    }
    
	@Override
	public void onClick(View v) {
		myTextView.setText("Do you press on the button?");
		Log.d(TAG, "Do you press on the button?");
		Toast.makeText(this, "Do you press on the button?", Toast.LENGTH_LONG).show();
		
	//	_value = getURLContent("http://www.boi.org.il/currency.xml");
		myTextView.setText("result"+sResponse);
	}
    
}



ощибок не получаю. но и результат пустой приходит. Нужные Пермишены добавил
...
Рейтинг: 0 / 0
Android xml из сети
    #38680762
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Android xml из сети
    #38680812
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ереправил так. теперь приложение аварийно закрывается в эмуляторе

Код: 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.
package com.andrik.simpleproject;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;


import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

	TextView myTextView = (TextView) findViewById(R.id.simple_text);
	
	String result ="";
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        result = getURLContent("http://www.boi.org.il/currency.xml");
    }


    @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;
    }
    
    public String getURLContent(String p_sURL)
    {
        URL oURL;
        URLConnection oConnection;
        BufferedReader oReader;
        String sLine;
        StringBuilder sbResponse;
        String sResponse = null;

        try
        {
            oURL = new URL(p_sURL);
            oConnection = oURL.openConnection();
            oConnection.connect();
            oReader = new BufferedReader(new InputStreamReader(oConnection.getInputStream()));
            sbResponse = new StringBuilder();

            while((sLine = oReader.readLine()) != null)
            {
                sbResponse.append(sLine);
            }

            sResponse = sbResponse.toString();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

        return sResponse;
    }
 
}
...
Рейтинг: 0 / 0
Android xml из сети
    #38680817
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostarтеперь приложение аварийно закрывается в эмуляторе
В таком случае всегда есть logcat.
...
Рейтинг: 0 / 0
Android xml из сети
    #38680822
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ощибки из лога в приложении!

Немогу понять чего эклипму не нравиться?
...
Рейтинг: 0 / 0
Android xml из сети
    #38680823
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот забыл
...
Рейтинг: 0 / 0
Android xml из сети
    #38680891
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AreostarНемогу понять чего эклипму не нравиться?
Шутишь?

Код: plaintext
at android.app.Activity.findViewById(Activity.java:1839)

Где это должно вызываться, как думаешь?
...
Рейтинг: 0 / 0
Android xml из сети
    #38680977
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пордон, по запарке не увидел. Исправил но результат всёравно пустой! Что ещё неправельно???
...
Рейтинг: 0 / 0
Android xml из сети
    #38681004
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AreostarЧто ещё неправельно???
Что-то еще точно не правильно, но не видя код как-то сложно судить.
...
Рейтинг: 0 / 0
Android xml из сети
    #38681326
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
package com.andrik.simpleproject;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;


import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

	TextView myTextView;
	
	String result ="";
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myTextView = (TextView) findViewById(R.id.simple_text);
        result = getURLContent("http://www.boi.org.il/currency.xml");
        
    }


    @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;
    }
    
    public String getURLContent(String p_sURL)
    {
        URL oURL;
        URLConnection oConnection;
        BufferedReader oReader;
        String sLine;
        StringBuilder sbResponse;
        String sResponse = "";

        try
        {
            oURL = new URL(p_sURL);
            oConnection = oURL.openConnection();
            oConnection.connect();
            oReader = new BufferedReader(new InputStreamReader(oConnection.getInputStream()));
            sbResponse = new StringBuilder();

            while((sLine = oReader.readLine()) != null)
            {
                sbResponse.append(sLine);
                myTextView.setText(sLine.length());
            }

            sResponse = sbResponse.toString();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return sResponse;
    }
 
}
...
Рейтинг: 0 / 0
Android xml из сети
    #38681477
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе наверное стоит посмотреть в сторону библиотек... Например: https://code.google.com/p/android-query/

А по коду: readLine тебе не подходит, читай ответ как двоичный файл.
...
Рейтинг: 0 / 0
Android xml из сети
    #38681960
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот попробывал такой вариант(кажется он у меня раньше работал даже)

на экран выводится done - тоесть сработало. НО вместе с ним какая то ошибка: has error: android.os.NetworkOnMainTheardExaption ??

если читаю не правельно то скажите как надо? И как я могу читать xml как двоичный фаил??

В лог получаю ощибку автор06-27 10:56:13.741: E/Trace(1078): error opening trace file: No such file or directory (2)
Но ссылка на 100% рабочая

Код: 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.
81.
82.
package com.andrik.simpleproject;


import java.io.BufferedInputStream;
import java.io.Closeable;
import java.io.InputStream;
import java.net.URL;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;


public class MainActivity extends Activity {

	TextView myTextView;
	
	String result ="";
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myTextView = (TextView) findViewById(R.id.simple_text);
        getURLContent("http://www.boi.org.il/currency.xml");
    }

    @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;
    }
    
    public void getURLContent(String p_sURL)
    {
    	 InputStream is = null;
         try {
             DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
             URL url = new URL("http://www.boi.org.il/currency.xml");
             is = new BufferedInputStream(url.openStream());
             Document document = documentBuilder.parse(is);
             document.getDocumentElement().normalize();

             NodeList nodes = document.getElementsByTagName("CURRENCY");
             for (int i = 0; i < nodes.getLength(); i++) {
                 Node node = nodes.item(i);
                 if (node.getNodeType() == Node.ELEMENT_NODE) {
                	 myTextView.append("\n");
                     myTextView.append(getValue("NAME", (Element) node));
                 }
             }
         } catch (Throwable e) {
        	 myTextView.append("\n\nhas error: " + e);
         } finally {
             closeQuietly(is);
             myTextView.append("\n\ndone");
         }
    }
    

    private static CharSequence getValue(String string, Element element) {
        NodeList nodes = element.getElementsByTagName(string).item(0).getChildNodes();
        Node node = (Node) nodes.item(0);
        return node.getNodeValue();
    }

    private static void closeQuietly(Closeable resource) {
        if (resource != null) {
            try { resource.close(); } catch (Exception e) {}
        }
    }
}
...
Рейтинг: 0 / 0
Android xml из сети
    #38681972
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostarна экран выводится done - тоесть сработало. НО вместе с ним какая то ошибка: has error: android.os.NetworkOnMainTheardExaption ??
Вторым-же сообщением:
wadmanВерно и качать в другом потоке (thread).

Немного по теме: как скачать в другом потоке (thread) http://startandroid.ru/ru/uroki/vse-uroki-spiskom/150-urok-87-asynctask-parametry-promezhutochnye-rezultaty.html
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Android xml из сети
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]