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

Парсинг xml-файла - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Нужен вас совет http://www.cyberforum.ru/android-dev/thread1661063.html
У меня в планах реализовать простое приложение, подобие записной книжки с сервером) Хочу получать через json данные и выводить их на экран в виде списка. Вот мне ваши идеи как бы вы стали реализовывать именно мобильное приложение, а точнее прием json и последующий вывод данных. Просто увидел что люди начали предлагать уже бд для хранения данных ( если правильно понял ). Я предполагал, все...
Программирование Android Будильник в точные минуты Добрый день. Подскажите. как назначить setRepeating в AlarmManager, чтоб действие срабатывало каждые HH:m5:00 и HH:m0:00. Знаю что тема заезженная, но ответа так и не нашел. И, пожалуйста, не кидайте ссылки на похожие темы, там я уже был. http://www.cyberforum.ru/android-dev/thread1660941.html
Чем вы пользуетесь для предложения пользователю оценить свое предложение Программирование Android
Привет! Вы используете в своих приложениях Popup - окошко, в котором предлагается оценить ваше приложение в маркете? Я тут на github нашел одно простенькое: https://github.com/TimotheeJeannin/AppRate Может вы знаете, где есть получше, покрасивше?
Как быстро разобраться в чужой программе (Android)? Программирование Android
Всем, добрый день. Мне необходимо понять и изменить код в программе, которую писал другой android- программист. В связи с этим хотел узнать Ваш опыт или методику, поделитесь, пожалуйста, своим опытом как Вы разбирали чужой код и какие есть подводные камни? Код очень большой, много классов и так далее. Сколько времени Вам в среднем понадобилось, чтобы разобраться в чужой программе? Заранее,...
Программирование Android JSON http://www.cyberforum.ru/android-dev/thread1660768.html
В продолжение моей борьбы с json, поделитесь полезными ссылками для изучения, буду очень признателен. И вот вопрос, у меня есть массив rootArray , как мне теперь передать в другой метод? public void invoke() { AsyncHttpClient client = new AsyncHttpClient(); client.get("http://***.ddns.net:8080/get", new AsyncHttpResponseHandler() { @Override public...
Программирование Android Книга Head First. Программирование для Android. Ваши впечатления? Привет! Недавно вышла книжка по Android. На хабре целая статья, посвященная этой книге: https://habrahabr.ru/company/piter/blog/277023/ Кто-нибудь уже приобрел эту книжку? Какие впечатления? подробнее

Показать сообщение отдельно
pdmitriya
8 / 8 / 1
Регистрация: 29.01.2015
Сообщений: 56

Парсинг xml-файла - Программирование Android

12.02.2016, 22:39. Просмотров 318. Ответов 2
Метки (Все метки)

Пытаюсь получить информацию из xml файла, но всегда получаю ошибку. Как это можно исправить?


/res/xml/support.xml
XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<support>
    <title type="text">Title page</title>
    <summary type="html">
        Google Inc. is an American multinational technology company specializing in Internet-related services and products. These include online advertising technologies, search, cloud computing, and software
    </summary>
    <link href="https://google.com" />
</support>

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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package com.mycompany.myapp;
 
import android.app.Activity;
import android.app.AlertDialog;
import java.io.IOException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class MainActivity extends Activity {
 
    final Context context = this;
    private Button button;
 
    public void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        button = (Button) findViewById(R.id.buttonAlert);
 
        // add button listener
        button.setOnClickListener(new OnClickListener() {
 
                @Override
                public void onClick(View arg0) {
                    alert(arg0);
                }
            });
    }
    public void alert(View arg0) {
 
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            context);
        String s;
        Entry entry = parse();
        if(entry.title != null) 
            s = entry.title;
        else s= "fail";
        // set title
        alertDialogBuilder.setTitle(s);
 
        alertDialogBuilder.setMessage(s);
 
        // set dialog message
        alertDialogBuilder
            .setCancelable(false)
            .setNegativeButton("No",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    MainActivity.this.finish();
                }
            });
 
        // create alert dialog
        AlertDialog alertDialog = alertDialogBuilder.create();
 
        // show it
        alertDialog.show();
    }
 
    //do etogo mesta nichego izmenyat' nel'zya
 
    private static final String ns = null;
    
    public static class Entry
    {
        public final String title;
        public final String link;
        public final String summary;
 
        private Entry(String title, String summary, String link) {
            this.title = title;
            this.summary = summary;
            this.link = link;
        }
    }
    public Entry parse() {
        String title = null;
        String summary = null;
        String link = null;
        
        try{
            XmlPullParser parser = getResources().getXml(R.xml.support);
            parser.nextTag();
            parser.require(XmlPullParser.START_TAG, null, "support");
            while (parser.next() != XmlPullParser.END_TAG) {
                if (parser.getEventType() != XmlPullParser.START_TAG) {
                    continue;
                }
                String name = parser.getName();
                if (name.equals("title")) {
                    title = readTitle(parser);
                } else if (name.equals("summary")) {
                    summary = readText(parser);
                } else if (name.equals("link")) {
                    link = readLink(parser);
                } else {
                    skip(parser);
                }
            }
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return new Entry(title, summary, link);
    }
    private String readTitle(XmlPullParser parser) throws IOException, XmlPullParserException {
        parser.require(XmlPullParser.START_TAG, ns, "title");
        String title = readText(parser);
        parser.require(XmlPullParser.END_TAG, ns, "title");
        return title;
    }
    private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
        String result = "";
        if (parser.next() == XmlPullParser.TEXT) {
            result = parser.getText();
            parser.nextTag();
        }
        return result;
    }
    private String readLink(XmlPullParser parser) throws IOException, XmlPullParserException {
        String link = "";
        parser.require(XmlPullParser.START_TAG, ns, "link");
        String tag = parser.getName();
        if (tag.equals("link")) {
            link = parser.getAttributeValue(null, "href");
            parser.nextTag();
        }
        parser.require(XmlPullParser.END_TAG, ns, "link");
        return link;
    }
    private void skip(XmlPullParser parser) throws IOException, XmlPullParserException {
        if (parser.getEventType() != XmlPullParser.START_TAG) {
            throw new IllegalStateException();
        }
        int depth = 1;
        while (depth != 0) {
            switch (parser.next()) {
                case XmlPullParser.END_TAG:
                    depth--;
                    break;
                case XmlPullParser.START_TAG:
                    depth++;
                    break;
            }
        }
    }
}
System.err: org.xmlpull.v1.XmlPullParserException: Binary XML file line #-1: expected start or end tag (position:Binary XML file line #-1)
System.err: at android.content.res.XmlBlock$Parser.nextTag(XmlBlock.java:303)
System.err: at com.mycompany.myapp.MainActivity.parse(MainActivity.java:85)
System.err: at com.mycompany.myapp.MainActivity.alert(MainActivity.java:40)
System.err: at com.mycompany.myapp.MainActivity$100000000.onClick(MainActivity.java:32)
System.err: at android.view.View.performClick(View.java:5204)
System.err: at android.view.View$PerformClick.run(View.java:21156)
System.err: at android.os.Handler.handleCallback(Handler.java:739)
System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
System.err: at android.os.Looper.loop(Looper.java:148)
System.err: at android.app.ActivityThread.main(ActivityThread.java:5466)
System.err: at java.lang.reflect.Method.invoke(Native Method)
System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Вложения
Тип файла: zip MyApp.zip (856.8 Кб, 0 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru