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

XML Парсинг (yml) - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Не отображается часть виджета http://www.cyberforum.ru/android-dev/thread1799451.html
Всем привет, сделал небольшой погодный виджет, так ради интереса, состоит он из картинки и двух текстовых полей под ней. Вроде ничего сложного, на моём телефоне 5.1 андроид, всё в порядке, у знакомой...
Программирование Android Как изменить тему приложения? У меня установлена темная тема Material, но я не могу понять, как мне сменить ее на светлую? Вот тема приложения: <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"/> <item... http://www.cyberforum.ru/android-dev/thread1799421.html
Программирование Android Вызов функций из класса
Добрый день, позавчера стал изучать программирование для андроид и столкнулся с не понятной для меня вещью, и хочу сразу разобраться, что тут не так. Учусь программировать на AndroidStudio. ...
Программирование Android C++ Qt и java Android отправка SMS
Здравствуйте. Уже пол года мучаю Qt увидел в настройках компиляцию под Android и решил попробовать. Установил Linux и Qt c SDK, NDK, ANT. Все заработало . теперь хочу отправить СМС на номер из своего...
Программирование Android Чтение и запись данных в локальную БД SQLite http://www.cyberforum.ru/android-dev/thread1799337.html
Есть вот такой класс для работы локальной работы с БД. package com.tanatix.checkinternetresourceschanges; import android.content.ContentValues; import android.content.Context; import...
Программирование Android File provider IllegalArgumentException Сейчас изучаю материалы тут. Вот мой класс выбора файла public class FileSelectActivity extends AppCompatActivity { private ListView listView; // The path to the root of this app's... подробнее

Показать сообщение отдельно
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74

XML Парсинг (yml) - Программирование Android

27.08.2016, 16:06. Просмотров 483. Ответов 16
Метки (Все метки)

Вопрос таков. Чем распарсить yml страницу http://ufa.farfor.ru/getyml/?key=ukAXxeJYZN

Парсил XML с другого сайта, но таким образом не получается (возможно из-за вложенных категорий).

Неужели обычный XML парсинг? Тогда не пойму почему не работает мой.

Спасибо за ответ!

Java
1
private final static String urlAddress = "http://ufa.farfor.ru/getyml/?key=ukAXxeJYZN";
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
private Context context;
    private InputStream inputStream;
    private ListView lv;
    private XmlPullParser parser;
    private XmlPullParserFactory factory;
    private ProgressDialog progressDialog;
    private ArrayList<PostList> postLists = new ArrayList<>();
 
    public RSSParser(Context context, InputStream inputStream, ListView lv) {
        this.context = context;
        this.inputStream = inputStream;
        this.lv = lv;
    }
 
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        progressDialog = new ProgressDialog(context);
        progressDialog.setTitle("Parse RSS");
        progressDialog.setMessage("Parsing...Please wait");
        progressDialog.show();
    }
 
 
    @Override
    protected Boolean doInBackground(Void... params) {
        return this.parseRSS();
    }
 
    @Override
    protected void onPostExecute(Boolean isParsed) {
        super.onPostExecute(isParsed);
        progressDialog.dismiss();
        if (isParsed) {
            lv.setAdapter(new CustomAdapter(context, postLists));
        } else {
            Toast.makeText(context, "Unable to parse", Toast.LENGTH_SHORT).show();
        }
    }
 
    private Boolean parseRSS() {
        try {
            factory = XmlPullParserFactory.newInstance();
            parser = factory.newPullParser();
            parser.setInput(inputStream, null);
            int event = parser.getEventType();
            String tagValue = null;
            Boolean isSiteMeta = true;
            postLists.clear();
            PostList postList = new PostList();
            do {
                String tagName = parser.getName();
                switch (event) {
                    case XmlPullParser.START_TAG:
                        if (tagName.contains("offer")) {
                            postList = new PostList();
                            isSiteMeta = false;
                        }
                        break;
                    case XmlPullParser.TEXT:
                        tagValue = parser.getText();
                        break;
                    case XmlPullParser.END_TAG:
                        if (!isSiteMeta) {
                            if (tagName.equalsIgnoreCase("name")) {
                                postList.setTitle(tagValue);
//                            } else if (tagName.equalsIgnoreCase("description")) {
//                                String desc = tagValue;
//                                postList.setDescription(desc);
//                            } else if (tagName.equalsIgnoreCase("picture")) {
////                                String imgUrl = parser.getAttributeValue(null, "url");
//                                String imgUrl = tagValue;
//                                Log.d("TAG", "parseRSS: " + imgUrl);
//                                postList.setImageUrl(imgUrl);
                            }
                        }
                        if (tagName.equalsIgnoreCase("offer")) {
                            postLists.add(postList);
                            isSiteMeta = true;
                        }
                        break;
                }
                event = parser.next();
            } while (event != XmlPullParser.END_DOCUMENT);
            return true;
        } catch (XmlPullParserException | IOException e) {
            e.printStackTrace();
        }
        return false;
    }
}
С таким кодом парсил другой RSS сайт и было норм. Сейчас Unable to Parse. Подскажите гед ошибка?

Custom Adapter
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
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
 
import com.example.phantom.rss.R;
import com.example.phantom.rss.SecondActivity;
import com.example.phantom.rss.my_DataObject.PostList;
 
import java.util.ArrayList;
 
/**
 * Created by Phantom on 15.08.2016.
 */
public class CustomAdapter extends BaseAdapter {
    private Context context;
    private ArrayList<PostList> postLists;
 
    public CustomAdapter(Context context, ArrayList<PostList> postLists) {
        this.context = context;
        this.postLists = postLists;
    }
 
    @Override
    public int getCount() {
        return postLists.size();
    }
 
    @Override
    public Object getItem(int position) {
        return postLists.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.model, parent, false);
            TextView titleTxt = (TextView) convertView.findViewById(R.id.titleTxt);
//            ImageView imageView = (ImageView) convertView.findViewById(R.id.articleImage);
            PostList postList = (PostList) this.getItem(position);
            String title = postList.getTitle();
//            String imageUrl = postList.getImageUrl();
            titleTxt.setText(title);
//            PicassoClient.downloadImage(context, imageUrl, imageView);
//            titleTxt.setOnClickListener(new View.OnClickListener() {
//                @Override
//                public void onClick(View v) {
//                    String keyArticle = (postLists.get(position).getTitle());
//                    String keyDescription = (postLists.get(position).getDescription());
//                    Intent intent = new Intent(context, SecondActivity.class);
//                    intent.putExtra(SecondActivity.getKeyArticle(), keyArticle);
//                    intent.putExtra(SecondActivity.getKeyDesc(), keyDescription);
//                    context.startActivity(intent);
//                }
//            });
        }
        return convertView;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru