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

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

Войти
Регистрация
Восстановить пароль
 
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
#1

Не читается полностью скачанный xml - Android

02.11.2012, 23:44. Просмотров 834. Ответов 6
Метки нет (Все метки)

Здравствуйте.
Скачитаю xml:
Java
1
2
3
URL conn = new URL("http://www.cbr.ru/scripts/XML_daily.asp?date_req=05.10.2012");
    InputSource inputSource = new InputSource(conn.openStream());       
    inputSource.setEncoding("UTF-8");
На вывод идет все до первого символа в кириллице, т.е. до "Австралийский доллар".

Вот реализация обработчиков парсера:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void startElement (String uri, String localName, String qName, Attributes attributes) 
    throws SAXException{        
        try{            
            if (qName.equalsIgnoreCase("ValCurs"))
                TX.setText(TX.getText().toString()+"-"+attributes.getLocalName(1));         
                TX.setText(TX.getText().toString()+"-"+localName+"; ");}
        catch (Exception e) {
            TX.setText("Error tut");    }
    }
    public void characters (char[] ch, int start, int length) throws SAXException{
        String cdate = new String(ch, start, length);
        TX.setText(TX.getText()+ cdate);
    }   
}
По началу я начал грешить на кодировку, поэтому стал применять UTF-8, но как видно безрезультатно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.11.2012, 00:28     Не читается полностью скачанный xml #2
вы наугад вырезали два куска с своего кода и мы должны угадать что к чему?
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
03.11.2012, 00:40  [ТС]     Не читается полностью скачанный xml #3
Да нет, не наугад...
Вот весь код:

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
package com.sample.httpExample;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
 
 
public class HttpExampleActivity extends Activity 
implements OnClickListener
{
private 
TextView TX;
String result;
boolean item;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    TX = (TextView)findViewById(R.id.TX1);
    final Button but_1 = (Button)findViewById(R.id.But1);
    final Button but_2 = (Button)findViewById(R.id.But2);
    but_1.setOnClickListener(this);
    but_2.setOnClickListener(this);
}
 
@Override
public void onClick(View v){
    
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.But1:
    {   try {
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();
        XMLReader xmlReader = saxParser.getXMLReader();
        MyParser mypar = new MyParser();
        xmlReader.setContentHandler(mypar);
        URL conn = new URL("http://www.cbr.ru/scripts/XML_daily.asp?date_req=05.10.2012");
        InputSource inputSource = new InputSource(conn.openStream());
        inputSource.setEncoding("UTF-8");
        xmlReader.parse(inputSource);       
    }
        catch (Exception e) {
            // TODO: handle exception
            TX.setText(TX.getText().toString()+"  "+e);
        }
    }
    break;  
    }
 
}
 
private class MyParser extends DefaultHandler{
    public void startElement (String uri, String localName, String qName, Attributes attributes) 
    throws SAXException{
        try{  
            if (qName.equalsIgnoreCase("ValCurs"))
                TX.setText(TX.getText().toString()+"-"+attributes.getLocalName(1));
                TX.setText(TX.getText().toString()+"-"+localName+"; ");
        }
        catch (Exception e) {
        }
    }
    public void endElement (String namespaseURI, String localName, String qName) throws SAXException{   
    }
    public void characters (char[] ch, int start, int length) throws SAXException{
        String cdate = new String(ch, start, length);
        {
            TX.setText(TX.getText()+ cdate);
        }
    }   
}
}
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.11.2012, 01:08     Не читается полностью скачанный xml #4
Цитата Сообщение от Hank Посмотреть сообщение
catch (Exception e) {
* * * * * * // TODO: handle exception
* * * * * * TX.setText(TX.getText().toString()+" *"+e);
* * * * }
Цитата Сообщение от Hank Посмотреть сообщение
catch (Exception e) {
* * * * }
а екзепшены есть?
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
03.11.2012, 01:45  [ТС]     Не читается полностью скачанный xml #5
Да есть, забыл совсем.

"org.apache.harmony.xml. ExpatParser$ParseException: At line 7, column 7: not well-formed (invalid token)"

Второй перехватчик не срабатывает.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.11.2012, 02:06     Не читается полностью скачанный xml #6
а так пробовали?
inputSource.setEncoding("windows-1251");
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 16:03     Не читается полностью скачанный xml
Еще ссылки по теме:

Полностью прозрачный status bar Android
Android Полностью убить приложение
Android Как полностью удалить студию (убунту)?
Удалить не полностью переданый файл через socket Android
Android Android Studio полностью круглая кнопка

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

Или воспользуйтесь поиском по форуму:
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
03.11.2012, 16:03  [ТС]     Не читается полностью скачанный xml #7
Цитата Сообщение от V0v1k Посмотреть сообщение
а так пробовали?
inputSource.setEncoding("windows-1251");
Да так пробовал.

"org.apache.harmony.xml. ExpatParser$ParseException: At line 1, column 0: unknown encoding"
Yandex
Объявления
03.11.2012, 16:03     Не читается полностью скачанный xml
Ответ Создать тему
Опции темы

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