Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Android xml из сети / 15 сообщений из 15, страница 1 из 1
24.06.2014, 10:07
    #38678126
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
Оснакомился с этим уроком 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
24.06.2014, 10:14
    #38678136
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
Areostarтоесть надо его скачать для начала?
Верно и качать в другом потоке (thread). Пример(ы) http://stackoverflow.com/questions/9671546/asynctask-android-example
...
Рейтинг: 0 / 0
26.06.2014, 12:23
    #38680696
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
попробывал вот так:
Код: 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
26.06.2014, 13:16
    #38680762
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
...
Рейтинг: 0 / 0
26.06.2014, 13:53
    #38680812
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
ереправил так. теперь приложение аварийно закрывается в эмуляторе

Код: 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
26.06.2014, 13:55
    #38680817
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
Areostarтеперь приложение аварийно закрывается в эмуляторе
В таком случае всегда есть logcat.
...
Рейтинг: 0 / 0
26.06.2014, 14:01
    #38680822
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
Ощибки из лога в приложении!

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

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

Где это должно вызываться, как думаешь?
...
Рейтинг: 0 / 0
26.06.2014, 15:40
    #38680977
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
Пордон, по запарке не увидел. Исправил но результат всёравно пустой! Что ещё неправельно???
...
Рейтинг: 0 / 0
26.06.2014, 16:03
    #38681004
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
AreostarЧто ещё неправельно???
Что-то еще точно не правильно, но не видя код как-то сложно судить.
...
Рейтинг: 0 / 0
26.06.2014, 23:09
    #38681326
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
Код: 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
27.06.2014, 09:43
    #38681477
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
Тебе наверное стоит посмотреть в сторону библиотек... Например: https://code.google.com/p/android-query/

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

на экран выводится 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
27.06.2014, 15:15
    #38681972
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android xml из сети
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
Форумы / Android [игнор отключен] [закрыт для гостей] / Android xml из сети / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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