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

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

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

Показать сообщение отдельно
pdmitriya
8 / 8 / 1
Регистрация: 29.01.2015
Сообщений: 56
13.02.2016, 23:30  [ТС]
XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<message>
    <title>Title page</title>
        <summary>
        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" />
</message>
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
156
157
package com.mycompany.myapp;
 
import android.app.Activity;
import android.app.AlertDialog;
import java.io.IOException;
import android.content.res.XmlResourceParser;
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);
        
        Entry entry = parse();
        // set title
        alertDialogBuilder.setTitle( entry.title );
 
        alertDialogBuilder.setMessage( entry.summary );
        
        String s = entry.link;
 
        // set dialog message
        alertDialogBuilder
            .setCancelable(false)
            .setNegativeButton(s,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{
            XmlResourceParser parser = getResources().getXml(R.xml.support);
                do {
                    parser.next();              
                } while(parser.getEventType() != XmlResourceParser.START_TAG);
                
                parser.require(XmlResourceParser.START_TAG, ns, "message");
            while (parser.next() != XmlResourceParser.END_TAG) {
               if(parser.getEventType() != XmlResourceParser.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(XmlResourceParser parser) throws IOException, XmlPullParserException {
        parser.require(XmlResourceParser.START_TAG, ns, "title");
        String title = readText(parser);
        parser.require(XmlResourceParser.END_TAG, ns, "title");
        return title;
    }
    private String readText(XmlResourceParser parser) throws IOException, XmlPullParserException {
        String result = "";
        if (parser.next() == XmlResourceParser.TEXT) {
            result = parser.getText();
            parser.nextTag();
        }
        return result;
    }
    private String readLink(XmlResourceParser parser) throws IOException, XmlPullParserException {
        String link = "";
        parser.require(XmlResourceParser.START_TAG, ns, "link");
        String tag = parser.getName();
        if (tag.equals("link")) {
            link = parser.getAttributeValue(null, "href");
            parser.nextTag();
        }
        parser.require(XmlResourceParser.END_TAG, ns, "link");
        return link;
    }
    private void skip(XmlResourceParser parser) throws IOException, XmlPullParserException {
        if (parser.getEventType() != XmlResourceParser.START_TAG) {
            throw new IllegalStateException();
        }
        int depth = 1;
        while (depth != 0) {
            switch (parser.next()) {
                case XmlResourceParser.END_TAG:
                    depth--;
                    break;
                case XmlResourceParser.START_TAG:
                    depth++;
                    break;
            }
        }
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru