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

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

Войти
Регистрация
Восстановить пароль
 
Maxtron
50 / 50 / 3
Регистрация: 17.11.2012
Сообщений: 228
Записей в блоге: 1
#1

Не парсит xml исходя из атрибутов тега - Программирование Android

18.09.2013, 21:51. Просмотров 540. Ответов 1
Метки нет (Все метки)

Парсю xml, нужно спасить документ исходя из тегов, но нужно парсить так, чтобы выводились только те теги, атрибуты которых удовлетворяют определенному условию. Может кто-нибудь подскажет другой альтернативный вариант.
Вот основной код программы(если нужно, предоставлю код классов XMLParser и SingleMenuItemActivity):

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
package com.example.androidprojectforxmlpurs;
 
import java.util.ArrayList;
import java.util.HashMap;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
 
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
 
public class MainActivity extends ListActivity {
 
    static final String URL = "http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml";
    
    static final String KEY_ITEM = "item"; 
    static final String KEY_COST = "name";
    static final String KEY_DESC = "website";
    String attr;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
 
        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL); // getting XML
        Document doc = parser.getDomElement(xml); // getting DOM element
 
        NodeList nl = doc.getElementsByTagName("item");
        
        NodeList n2 = doc.getElementsByTagName("website");
        
        
        
        // looping through all item nodes <item>
        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            //Element e = (Element) nl.item(i);
            // adding each child node to HashMap key => value
            //map.put(KEY_ID, parser.getValue(e, KEY_ID));
            //map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
            int n  = 0;
            int length = n2.getLength();
            for (int j = 0; j < length; j++)
            {
                 
                Element terrif = (Element) n2.item(j);
                 
 
                 String name = terrif.getAttribute("category");
                 //initialValues.put(TRAILER_TITLE,name);
                 //Log.d("myLogs", "name = " + name);
                 
                 if(name.equals("android")) {
                     Element e = (Element) nl.item(i);
                     Log.d("myLogs", "name = " + name);
                
                     map.put(KEY_COST, "Rs." + parser.getValue(e, KEY_COST));
                     map.put(KEY_DESC, parser.getValue(e, KEY_DESC));
                     Log.d("myLogs", "n = " + n);
                     // adding HashList to ArrayList
                     menuItems.add(map);
                     // and so on for other attributes...
                 }
            }
            
        }
 
        // Adding menuItems to ListView
        ListAdapter adapter = new SimpleAdapter(this, menuItems,
                R.layout.list_item,
                new String[] { KEY_DESC, KEY_COST }, new int[] {
                        R.id.desciption, R.id.cost });
 
        setListAdapter(adapter);
 
        // selecting single ListView item
        ListView lv = getListView();
 
        lv.setOnItemClickListener(new OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // getting values from selected ListItem
                String cost = ((TextView) view.findViewById(R.id.cost)).getText().toString();
                String description = ((TextView) view.findViewById(R.id.desciption)).getText().toString();
                
                // Starting new intent
                Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
                in.putExtra(KEY_COST, cost);
                in.putExtra(KEY_DESC, description);
                startActivity(in);
 
            }
        });
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2013, 21:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не парсит xml исходя из атрибутов тега (Программирование Android):

Отключение атрибутов xml взависимости от версии дроида - Программирование Android
Столкнулся с проблемой КардВью по разному выглядит на 5ом дроиде и более старых. Подскажите как можно отключить некоторые атрибуты в...

Xml sax parser как вытащить картинку из тега <description> - Программирование Android
пишу клиент для сайта использую xml sax parser вопрос как вытащить картинки и сделать что бы они коректно отображались класс парсера ...

Проблемка с PHP Simple HTML DOM Parser. Парсит, не останавливается на конце тега + кодировка - PHP
Собственно проблема, даже две :) 1) Есть кусок кода: .... $com = ' '; // еще один буфер foreach($elements as $element)...

Нахождение атрибутов тега - PHP
Здравствуйте! Буду рад любой подсказке Необходимо найти все значения атрибутов тега и засунуть в массив, пробовал несколько разных...

Вывод всех атрибутов тега. - jQuery
Программисты, выручайте, искал по форумам и т.д. ничего нужного не нашел. Как с помощью JS, JQuery (не важно), узнать все возможные...

Значение атрибутов тега <link> - HTML, CSS
доброго времени суток, отцы и мамки HTML и css! у меня к вам конкретный вопрос: что значит text/css? что значит text и что значит css в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
18.09.2013, 23:05 #2
Ничего не понял. В чем проблема? Где не работает именно? Альтернативный вариант чего?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2013, 23:05
Привет! Вот еще темы с ответами:

CSS селекторы атрибутов для тега BODY - HTML, CSS
Здравствуйте! Возник такой вопрос: как описать стили тэгу BODY так, чтоб он отображался в IE и в других браузерах по разному. Без...

SimpleXML не парсит XML - PHP
Доброго всем времени суток. Столкнулся с такой проблемой: SimpleXML возвращает пустой объект при обработке XML-файла. Пробовал передать в...

Javasript не парсит XML документ - JavaScript
Доброго времени суток, форумисты. Я ньюфаг в веб-разработке, поэтому обращаюсь за помощью к вам... Есть 2 файла index.html ...

Как сделать скрипт работающим для разных атрибутов id тега img? - JavaScript
Приветствую! https://www.w3schools.com/howto/howto_css_modal_images.asp - здесь пример как делать всплывающее окно поверх сайта, ну или как...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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