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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
#1

Создание XML - Android

24.03.2013, 15:36. Просмотров 2712. Ответов 19
Метки нет (Все метки)

Доброго дня.
Прошу простить мои ламерские вопросы.
Проблема раз:
Нужно сгенерить xml файл.
Погуглил, нашел только как обрабатывать чужие XMLки.
Если не трудно можно пример создания простейшей XML, или ссылку на русскую инфу(где для чайника расписано).

Проблема два:
Как мне сохранить xml?
Необходимо создать папку на диске девайса, и туда сохранять.

По работе заставили писать програмулину, времени осталось мало, а я дуб дубом)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 15:36     Создание XML
Посмотрите здесь:

Создание XML запроса Android
Android Поиск по xml
Создание XML файлов Андроидом Android
Android БД или xml
XML парсер Android
Парсинг XML Android
Android XML vs View
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
24.03.2013, 17:47     Создание XML #2
1. Попробуй тут почитать даже с картинками
http://www.ibm.com/developerworks/ru.../x-androidxml/

2. http://developer.android.com/guide/t...#filesInternal

Java
1
2
3
4
5
String FILENAME = "hello_file.xml";
 
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(xmlString.getBytes());
fos.close();
В кратце по второму файл сохраняется во внутреннею память устройства (папка /data/data/имя пакета/) и только твое приложение сможет читать этот файл (предполагается что устройство без рут прав)
Hank
45 / 36 / 2
Регистрация: 28.12.2011
Сообщений: 217
24.03.2013, 21:22     Создание XML #3
Вот два достаточно понятных урока по созданию и чтению xml файлов с помощью DOM-парсера.
Создание.
Чтение.
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
25.03.2013, 16:16  [ТС]     Создание XML #4
Огромное спасибо!

Добавлено через 5 часов 53 минуты
Ребят проблема, не хочет гадость работать. Нажимаю кнопку Сохранить и пишет что приложение остановлено.
Выкидываю код, посмотрите пожалуйста!
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
package com.example.nero;
 
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
 
import android.os.Bundle;
import android.renderscript.Element;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
 
 
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; 
 
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
 
public class MainActivity extends Activity {
 
    String[] FormSob = {"Выбрать","ИП", "ООО", "СП", "ЧУП"};
    String[] City = {"Выбрать","Киев", "Минск", "Москва", "Нальчик", "Ростов-на-Дону"};
    String[] Street = {"Выбрать","бульвар", "переулок", "площадь", "проезд", "проспект", "улица"};  
    String[] Expir = {"Выбрать","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2009","2010","2010","2011","2012","2013","2013","2014","2015"};  
    String editCompanyName;
    String CitySobsspin;
    String editСity2;
    String editStreetName;
    String editBild;
    String editCorpus;
    String editDom;
    String EditNumper;
    String editEmail;
    String editWww;
    String editFio;
    String editDolgn;
    String edit1_2;
    String edit1_10;
    String edit2_1;
    String edit2_2;
    String edit2_3;
    String edit2_4;
    String edit2_5;
    String edit2_6;
    String edit2_7;
    String edit2_8;
    String edit2_8col;
    String edit3_1;
    String edit3_2;
    String edit3_3;
    String edit3_4;
    String edit3_5;
    String edit3_6;
    String edit5_1;
    String edit5_2;
    String edit5_3;
    String editOther5_3;
    String editOther5col;
    String v6_5edit;
    String edit7_1;
    String edit7_2;
    String edit7_3;
    String edit8_1;
    String edit8_7;
    String edit9_1;
    String edit9_1col;
    String edit9_2;
    String edit9_2col;
    String edit9_3;
    String edit9_3col;
    String edit9_4;
    String edit9_4col;
    String edit9_5;
    String edit9_5col;
    String edit9_6;
    String edit9_6col;
    String edit9_7;
    String edit9_7col;
    String edit9_8;
    String edit10_1;
    String edit10_2;
    String edit10_3;
    String edit10_4;
    String edit10_5;
    String edit10_6;
    String edit10_7;
    String edit10_8;
    String edit11_1;
    String edit11_2;
    String edit11_3;
    String edit11_4;
    String edit11_5;
    String edit11_6;
    String edit11_7;
    String edit11_8;
    String edit11_9;
    String edit11_10;
    String edit11_11;
    String edit13_13;   
    Boolean v1_1Check;
    Boolean v1_2Check;
    Boolean v1_3Check;
    Boolean v1_4Check;
    Boolean v1_5Check;
    Boolean v1_6Check;
    Boolean v1_7Check;
    Boolean v1_8Check;
    Boolean v1_9Check;
    Boolean v1_10Check;
    Boolean v2_1Check;
    Boolean v2_2Check;
    Boolean v2_3Check;
    Boolean v2_4Check;
    Boolean v2_5Check;
    Boolean v2_6Check;
    Boolean v2_7Check;
    Boolean v2_8Check;
    Boolean v3_1Check;
    Boolean v3_2Check;
    Boolean v3_3Check;
    Boolean v3_4Check;
    Boolean v3_5Check;
    Boolean v3_6Check;
    Boolean v5_1Check;
    Boolean v5_2Check;
    Boolean v5_3Check;
    Boolean v6_1Check;
    Boolean v6_2Check;
    Boolean v6_3Check;
    Boolean v6_4Check;
    Boolean v6_5Check;  
    Boolean v7_1Check;
    Boolean v7_2Check;
    Boolean v7_3Check;      
    Boolean v8_1Check;
    Boolean v8_2Check;
    Boolean v8_3Check;
    Boolean v8_4Check;
    Boolean v8_5Check;
    Boolean v8_6Check;
    Boolean v8_7Check;
    Boolean v8_8Check;      
    Boolean v9_1Check;
    Boolean v9_2Check;
    Boolean v9_3Check;
    Boolean v9_4Check;
    Boolean v9_5Check;
    Boolean v9_6Check;
    Boolean v9_7Check;
    Boolean v9_8Check;      
    Boolean v10_1Check;
    Boolean v10_2Check;
    Boolean v10_3Check;
    Boolean v10_4Check;
    Boolean v10_5Check;
    Boolean v10_6Check;
    Boolean v10_7Check;
    Boolean v10_8Check;         
    Boolean v11_1Check;
    Boolean v11_2Check;
    Boolean v11_3Check;
    Boolean v11_4Check;
    Boolean v11_5Check;     
    Boolean v11_6Check;
    Boolean v11_7Check;
    Boolean v11_8Check;
    Boolean v11_9Check;
    Boolean v11_10Check;
    Boolean v11_11Check;                
    Boolean v12_1Check;
    Boolean v12_2Check;
    Boolean v12_3Check; 
    Boolean v13_1Check;
    Boolean v13_2Check;
    Boolean v13_3Check;
    Boolean v13_4Check;
    Boolean v13_5Check;     
    Boolean v13_6Check;
    Boolean v13_7Check;
    Boolean v13_8Check;
    Boolean v13_9Check;
    Boolean v13_10Check;
    Boolean v13_11Check;    
    Boolean v13_12Check;
    Boolean v13_13Check;    
    String CompanyName;
    String FormsCompany;
    String Сity2;
    String Сity;    
    String StreetName;
    String StreetVid;
    String Bild;
    String Corpus;
    String Dom;
    String Numper;
    String Email;
    String Www;
    String Fio;
    String Dolgn;
    Spinner FormSobsspinner;
    String FormSobsspinnerEdit;
    ArrayList<GroupData> CRlist;
    Spinner CitySobsspinner;    
    Spinner Streetspinner;
    String StreetspinnerEdit;
    String OfficeNumper;
    String Office;
    String PhoneNumper;
    String EditPNumper; 
    
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Поля ввода
 
        //Форма собственности
        ArrayAdapter<String> FormSobstvAd = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, FormSob);
        FormSobstvAd.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        FormSobsspinner = (Spinner) findViewById(R.id.spinnerFormSob);
        FormSobsspinner.setAdapter(FormSobstvAd);
        FormSobsspinner.setPrompt("Title");
        FormSobsspinner.setSelection(2);
 
        //Город
        ArrayAdapter<String> CityAd = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, City);
        CityAd.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        CitySobsspinner = (Spinner) findViewById(R.id.spinnerCity);
        CitySobsspinner.setAdapter(CityAd);
        CitySobsspinner.setPrompt("Title");
        CitySobsspinner.setSelection(2);
 
        //Улица
        ArrayAdapter<String> SteetAd = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, Street);
        SteetAd.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        Streetspinner = (Spinner) findViewById(R.id.spinnerStreet);
        Streetspinner.setAdapter(SteetAd);
        Streetspinner.setPrompt("Title");
        Streetspinner.setSelection(2);        
 
       //Опыт на рынке
        ArrayAdapter<String> ExpAd = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, Expir);
        ExpAd.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        Spinner Expspinner = (Spinner) findViewById(R.id.spinnerExpR);
        Expspinner.setAdapter(ExpAd);
        Expspinner.setPrompt("Title");
        Expspinner.setSelection(2);        
;    
                
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    public void onSaveClick(View view)  
    {       
        FormClasses();
    } 
 
 
    public void FormClasses()
    {
        CRlist = new ArrayList<GroupData>();
        //Наименование компании
        TextView CoPN = (TextView) findViewById(R.id.CompanyName);
        CompanyName = CoPN.toString();
        EditText CoPNEdir = (EditText) findViewById(R.id.editCompanyName);
        editCompanyName = CoPNEdir.toString();      
        GroupData GroupData1 = new GroupData();
        GroupData1.setTitle(CompanyName);
        GroupData1.setAnswer(CompanyName);
        GroupData1.setAnswerEdit(editCompanyName);      
        CRlist.add(GroupData1);
        
        //Форма собственности
        TextView Sobs = (TextView) findViewById(R.id.CompanyName);
        FormsCompany = Sobs.toString();
        FormSobsspinnerEdit = FormSobsspinner.getSelectedItem().toString();
        GroupData GroupData2 = new GroupData();
        GroupData2.setTitle(FormsCompany);
        GroupData2.setAnswer(FormsCompany);
        GroupData2.setAnswerEdit(FormSobsspinnerEdit);          
        CRlist.add(GroupData2);
        
        //Город
        TextView CityText = (TextView) findViewById(R.id.city);
        Сity = CityText.toString();
        CitySobsspin = CitySobsspinner.getSelectedItem().toString();
        GroupData GroupData3 = new GroupData();
        GroupData3.setTitle(Сity);
        GroupData3.setAnswer(Сity);
        GroupData3.setAnswerEdit(CitySobsspin);         
        CRlist.add(GroupData3);     
        
        //Другой Город
        TextView City2Text = (TextView) findViewById(R.id.city2);
        Сity2 = City2Text.toString();   
        EditText Cityy = (EditText) findViewById(R.id.edit22);
        editСity2 = Cityy.toString();
        GroupData GroupData4 = new GroupData();
        GroupData4.setTitle(Сity2);
        GroupData4.setAnswer(Сity2);
        GroupData4.setAnswerEdit(editСity2);            
        CRlist.add(GroupData4);             
        
        //Улица
        TextView StreetVidText = (TextView) findViewById(R.id.Street);
        StreetVid = StreetVidText.toString();       
        StreetspinnerEdit = Streetspinner.getSelectedItem().toString();
        GroupData GroupData5 = new GroupData();
        GroupData5.setTitle(StreetVid);
        GroupData5.setAnswer(StreetVid);
        GroupData5.setAnswerEdit(StreetspinnerEdit);    
        CRlist.add(GroupData5); 
        
        //Название улицы
        TextView StreetNameText = (TextView) findViewById(R.id.StreetName);
        StreetName = StreetNameText.toString();     
        EditText CityyEdit = (EditText) findViewById(R.id.editStreetName);
        editStreetName = CityyEdit.toString();      
        GroupData GroupData6 = new GroupData();
        GroupData6.setTitle(StreetName);
        GroupData6.setAnswer(StreetName);
        GroupData6.setAnswerEdit(editStreetName);   
        CRlist.add(GroupData6); 
 
        //Строение
        TextView BildNameText = (TextView) findViewById(R.id.Bild);
        Bild = BildNameText.toString();     
        EditText BildyEdit = (EditText) findViewById(R.id.editBild);
        editBild = BildyEdit.toString();        
        GroupData GroupData7 = new GroupData();
        GroupData7.setTitle(StreetName);
        GroupData7.setAnswer(StreetName);
        GroupData7.setAnswerEdit(editStreetName);   
        CRlist.add(GroupData7); 
        
        //Корпус
        TextView CorpusNameText = (TextView) findViewById(R.id.Corpus);
        Corpus = CorpusNameText.toString();     
        EditText CorpusyEdit = (EditText) findViewById(R.id.editCorpus);
        editCorpus = CorpusyEdit.toString();        
        GroupData GroupData8 = new GroupData();
        GroupData8.setTitle(Corpus);
        GroupData8.setAnswer(Corpus);
        GroupData8.setAnswerEdit(editCorpus);   
        CRlist.add(GroupData8); 
        
        //Номер дома
        TextView NumperNameText = (TextView) findViewById(R.id.DomNumber);
        Numper = NumperNameText.toString();     
        EditText NumperyEdit = (EditText) findViewById(R.id.editDom);
        EditNumper = NumperyEdit.toString();        
        GroupData GroupData9 = new GroupData();
        GroupData9.setTitle(StreetName);
        GroupData9.setAnswer(StreetName);
        GroupData9.setAnswerEdit(editStreetName);   
        CRlist.add(GroupData9); 
        
        //Номер офиса
        TextView OfficeText = (TextView) findViewById(R.id.OfficeNumper);
        Office = OfficeText.toString();     
        EditText OfficeNumperEdit = (EditText) findViewById(R.id.EditNumper);
        OfficeNumper = OfficeNumperEdit.toString();     
        GroupData GroupData10 = new GroupData();
        GroupData10.setTitle(Office);
        GroupData10.setAnswer(Office);
        GroupData10.setAnswerEdit(OfficeNumper);    
        CRlist.add(GroupData10);    
        
        //Телефон
        TextView PhoneNumperText = (TextView) findViewById(R.id.PhoneNumper);
        PhoneNumper = PhoneNumperText.toString();       
        EditText EditPNumperyEdit = (EditText) findViewById(R.id.EditPNumper);
        EditPNumper = EditPNumperyEdit.toString();      
        GroupData GroupData11 = new GroupData();
        GroupData11.setTitle(PhoneNumper);
        GroupData11.setAnswer(PhoneNumper);
        GroupData11.setAnswerEdit(EditPNumper); 
        CRlist.add(GroupData11);    
        
        //E-mail
        TextView EmailText = (TextView) findViewById(R.id.Email);
        Email = EmailText.toString();       
        EditText CityeditEmailyEdit = (EditText) findViewById(R.id.editEmail);
        editEmail = CityeditEmailyEdit.toString();      
        GroupData GroupData12 = new GroupData();
        GroupData12.setTitle(Email);
        GroupData12.setAnswer(Email);
        GroupData12.setAnswerEdit(editEmail);   
        CRlist.add(GroupData12);        
        
        //WWW
        TextView WwwText = (TextView) findViewById(R.id.Www);
        Www = WwwText.toString();       
        EditText editWwwyEdit = (EditText) findViewById(R.id.editWww);
        editWww = editWwwyEdit.toString();      
        GroupData GroupData13 = new GroupData();
        GroupData13.setTitle(Www);
        GroupData13.setAnswer(Www);
        GroupData13.setAnswerEdit(editWww); 
        CRlist.add(GroupData13);    
        
        //ФИО
        TextView FioText = (TextView) findViewById(R.id.Fio);
        Fio = FioText.toString();       
        EditText FioTextyEdit = (EditText) findViewById(R.id.editFio);
        editFio = FioTextyEdit.toString();      
        GroupData GroupData14 = new GroupData();
        GroupData14.setTitle(Fio);
        GroupData14.setAnswer(Fio);
        GroupData14.setAnswerEdit(editFio); 
        CRlist.add(GroupData14);    
        
        //Должность:
        TextView DolgnText = (TextView) findViewById(R.id.Dolgn);
        Dolgn = DolgnText.toString();       
        EditText editDolgnyEdit = (EditText) findViewById(R.id.editDolgn);
        editDolgn = editDolgnyEdit.toString();      
        GroupData GroupData15 = new GroupData();
        GroupData15.setTitle(Dolgn);
        GroupData15.setAnswer(Dolgn);
        GroupData15.setAnswerEdit(editDolgn);   
        CRlist.add(GroupData15);    
        CrXML(CRlist);
        
    }
    public void CrXML(ArrayList<GroupData> CR)
    {
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        try 
        {
            DocumentBuilder MyXmlBuilder = docFactory.newDocumentBuilder();
            Document doc = MyXmlBuilder.newDocument();
            Element rootElement = (Element) doc.createElement("Question");
            doc.appendChild((Node) rootElement);
            for(GroupData obj: CR)
            {
                Element item = (Element) doc.createElement("item");
                ((Node) rootElement).appendChild((Node) item);
                
                Attr attr = doc.createAttribute("Title");
                attr.setValue(obj.Title);
                ((org.w3c.dom.Element) item).setAttributeNode(attr);
                
                Attr attr2 = doc.createAttribute("CheckBox");
                attr2.setValue(obj.CheckBox);
                ((org.w3c.dom.Element) item).setAttributeNode(attr2);           
                
                Attr attr3 = doc.createAttribute("Answer");
                attr3.setValue(obj.Answer);
                ((org.w3c.dom.Element) item).setAttributeNode(attr3);   
                
                Attr attr4 = doc.createAttribute("AnswerEdit");
                attr4.setValue(obj.AnswerEdit);
                ((org.w3c.dom.Element) item).setAttributeNode(attr4);       
                
                Attr attr5 = doc.createAttribute("AnswerEdit_2");
                attr5.setValue(obj.AnswerEdit_2);
                ((org.w3c.dom.Element) item).setAttributeNode(attr5);           
                
                TransformerFactory factory = TransformerFactory.newInstance();
                try 
                {
                    Transformer transformer = factory.newTransformer();
                    DOMSource domSource = new DOMSource(doc.getDocumentElement());
                    OutputStream output = new ByteArrayOutputStream();
                    StreamResult result = new StreamResult(output);
                    try 
                    {
                        transformer.transform(domSource, result);
                        String xmlString = output.toString();
                        String FILENAME = "hello_file.xml";                  
                        FileOutputStream fos;
                        try 
                        {
                            fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
                            try 
                            {
                                fos.write(xmlString.getBytes());
                                fos.close();
                            } catch (IOException e) 
                            {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                            
                        } catch (FileNotFoundException e) 
                        {
                        
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
 
                    } 
                    catch (TransformerException e) 
                    {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } 
                catch (TransformerConfigurationException e) 
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
 
                
            }
            
        } 
        catch (ParserConfigurationException e) 
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
        
    }
    
 
}
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.03.2013, 16:33     Создание XML #5
логи смотрите.
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
25.03.2013, 17:09  [ТС]     Создание XML #6
Как смотреть логи нормальные я еще не разобрался. Но методом тыка понял что ошибка возникает в 460 строке.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.03.2013, 17:10     Создание XML #7
а мы каким методом должны угадать какая там ошибка возникла?
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
25.03.2013, 17:29     Создание XML #8
VictorAkira, http://startandroid.ru/ru/uroki/vse-...bschenija.html
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
25.03.2013, 17:32  [ТС]     Создание XML #9
Прощу прощения за мою не состоятельность в данном вопросе.
Переписал заново, ошибки нету.
Но я не совсем понял как сохранить XML.
Вот я создал XML и попробовал ее сохранить :
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
    public void CrXML(ArrayList<GroupData> CR)
    {
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        try 
        {
            DocumentBuilder documentBuilder = docFactory.newDocumentBuilder();  
            Document document = documentBuilder.newDocument();
            Element rootElement = (Element) document.createElement("Question");
            for(GroupData obj: CR)
            {
                Element item = (Element) document.createElement("item");
                ((Node) rootElement).appendChild((Node) item);
                
                Attr attr = document.createAttribute("Title");
                attr.setValue(obj.Title);
                ((org.w3c.dom.Element) item).setAttributeNode(attr);
                
                Attr attr2 = document.createAttribute("CheckBox");
                attr2.setValue(obj.CheckBox);
                ((org.w3c.dom.Element) item).setAttributeNode(attr2);           
                
                Attr attr3 = document.createAttribute("Answer");
                attr3.setValue(obj.Answer);
                ((org.w3c.dom.Element) item).setAttributeNode(attr3);   
                
                Attr attr4 = document.createAttribute("AnswerEdit");
                attr4.setValue(obj.AnswerEdit);
                ((org.w3c.dom.Element) item).setAttributeNode(attr4);       
                
                Attr attr5 = document.createAttribute("AnswerEdit_2");
                attr5.setValue(obj.AnswerEdit_2);
                ((org.w3c.dom.Element) item).setAttributeNode(attr5);
           }
            TransformerFactory factory = TransformerFactory.newInstance();
            try
            {
                Transformer transformer = factory.newTransformer();
                DOMSource domSource = new DOMSource(document.getDocumentElement());
                OutputStream output = new ByteArrayOutputStream();
                StreamResult result = new StreamResult(output);  
                try
                {
                    transformer.transform(domSource, result);
                    String xmlString = output.toString();
                    String FILENAME = "hello_file.xml";                  
                    FileOutputStream fos;
                    try
                    {
                        fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
                        try 
                        {
                            fos.write(xmlString.getBytes());
                            fos.close();
                        } catch (IOException e) 
                        {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }                       
                    }
                    catch (Exception e) 
                    {
                        // TODO: handle exception
                    }
                }
                catch (Exception e) 
                {
                    // TODO: handle exception
                }
            }
            catch (Exception e) 
            {
                // TODO: handle exception
            }
        }
        catch (Exception e) 
        {
            // TODO: handle exception
        }
    }
Однако (папка /data/data/имя пакета/) пуста.
'и только твое приложение сможет читать этот файл'
В дальнейшем данные XMLки будут парсится на сайте.
Как правильно сохранять?

Добавлено через 1 минуту
c4sp3r, спс изучу
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
25.03.2013, 18:02     Создание XML #10
VictorAkira, файл должен сохранится в

Код
 /data/data/com.example.nero/files
если имя твоего пакета com.example.nero

еще можно получить путь например так:

Java
1
String myPath = getFilesDir().getPath();
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
25.03.2013, 18:17  [ТС]     Создание XML #11
Прошелся поиском, нету( Что я мог не правильно сделать?
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
25.03.2013, 18:18     Создание XML #12
VictorAkira, ты на эмуляторе проверяешь или на устройстве?
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
25.03.2013, 18:24  [ТС]     Создание XML #13
На устройстве.
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
25.03.2013, 18:32     Создание XML #14
VictorAkira, если на нем нет рут прав ты не увидишь папку! Но твое приложение может читать данный файл.
Еще можно сохранять на sdcard.
Миниатюры
Создание XML  
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
25.03.2013, 18:36  [ТС]     Создание XML #15
c4sp3r,
В DDMS у меня папка data вообще пуста.

Дело в том что мне нужно сохранить XMl так, что бы его можно было вытянуть и обработать.
Работать все это дело будет на планшетах, будут ходить люди на выставке и заполнять анкету(а это и есть мое приложение). А у них точно прав рута не будет.
Миниатюры
Создание XML  
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
25.03.2013, 18:55     Создание XML #16
VictorAkira, ну если рут прав нет конечно она будет пуста.

Дело в том что мне нужно сохранить XMl так, что бы его можно было вытянуть и обработать.
Ну после создания напиши код чтоб он экспортировал этот файл на sdcard или вообще заливал на сервер и т.п.

Получить список файлов можно например так:

Java
1
2
3
String[] list = new String[10]; // вообще так лучше не делать но для проверки сойдет
list = fileList();
//Затем выводи этот массив в цикле используя например Log
Добавлено через 7 минут
Или сразу сохраняй файл в папку где у тебя есть доступ на чтение правда openFileOutput уже не пойдет
но есть и другие методы.

Добавлено через 4 минуты
Вот тебе еще пример сохранения файла заместо openFileOutput
https://sites.google.com/site/androi...ile-to-sd-card
или более подробно на русском:
http://startandroid.ru/ru/uroki/vse-...s-fajlami.html
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
25.03.2013, 20:38  [ТС]     Создание XML #17
ОЧень сильно Вас благодарю!
Однако у нас так и не получилось сделать(
Мне надо создать вот такую XML:
XML
1
2
3
4
5
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<Question>
        <item Title="Наименование компании:" CheckBox="" Answer="Наименование компании:" AnswerEdit="ООО Гангнам стайл" AnswerEdit_2=""/>
        <item Title="Адресс:" CheckBox="" Answer="Адресс:" AnswerEdit="Минск" AnswerEdit_2=""/>
</Question>
И сохранить ее в корень памяти(аля DCIM).
Если поможете то будем очень благодарны, ибо уже сроки горят(
Hank
45 / 36 / 2
Регистрация: 28.12.2011
Сообщений: 217
25.03.2013, 23:49     Создание XML #18
Уважаемый, ViktorAkira.
Вот вам рабочий класс для создания xml файла с вашей структурой. Создаете объект этого класса и вызываете метод setAttr. Метод сам посмотрит существования файла и если его нет, то создаст с коревым тегом Question. После этого наполнит дочерними тегами и атрибутами. Значения атрибутам будут присвоены те, которые вы передадите в качестве параметров при вызове метода setAttr.
Новая запись в xml файле будет появляться столько раз, сколько вы вызовите этот метод.
Класс еще нужно до ума довести, например, сделать сохранение на SD-CARD (сейчас он пишется в каталог приложения), сделать этого не могу, т.к. комп заглючил, а с ним и IDE.

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
public class CreateTestXML {
    final String TAG = "CreateNewXML";
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder;
    Element element;
    Document doc;
    TransformerFactory transformerFactory;
    Transformer transformer;
    DOMSource domSource;
    StreamResult sr;
    String filepath = "/data/data/PACKAGE_NAME/files/"; //укажите свой Package_name
    String filename = "New.xml";
    File file = new File(filepath, filename);
    public void createDocument(){
        try{
            file = new File(filepath);
            file.mkdir();
            file = new File(filepath, filename);
            documentBuilder = documentBuilderFactory.newDocumentBuilder();
            doc = documentBuilder.newDocument();
            element = doc.createElement("Question");
            doc.appendChild(element);
            transformerFactory = TransformerFactory.newInstance();
            transformer = transformerFactory.newTransformer();
            domSource = new DOMSource(doc);
            sr = new StreamResult(file);
            transformer.transform(domSource, sr);
        } catch (ParserConfigurationException pce){
            Log.e(TAG, "Ошибка: ", pce);
        } catch (TransformerConfigurationException tce) {
            Log.e(TAG, "Ошибка: ", tce);
        } catch (TransformerException te) {
            Log.e(TAG, "Ошибка: ", te);
        }
    }
        public void setAttr(String title, String checkBox, String answer, String answerEdit, String answerEdit_2){
        if (file.isFile() == false)
            createDocument();
        try {
            documentBuilder = documentBuilderFactory.newDocumentBuilder();
            doc = documentBuilder.parse(file);
            element = doc.getDocumentElement();
            Element childelement = doc.createElement("item");
            element.appendChild(childelement);
 
            Attr attr = doc.createAttribute("Title");
            attr.setValue(title);
            childelement.setAttributeNode(attr);
 
            attr = doc.createAttribute("CheckBox");
            attr.setValue(checkBox);
            childelement.setAttributeNode(attr);
 
            attr = doc.createAttribute("Answer");
            attr.setValue(answer);
            childelement.setAttributeNode(attr);
 
            attr = doc.createAttribute("AnswerEdit");
            attr.setValue(answerEdit);
            childelement.setAttributeNode(attr);
 
            attr = doc.createAttribute("AnswerEdit_2");
            attr.setValue(answerEdit_2);
            childelement.setAttributeNode(attr);
 
            transformerFactory = TransformerFactory.newInstance();
            transformer = transformerFactory.newTransformer();
            domSource = new DOMSource(doc);
            sr = new StreamResult(file);
            transformer.transform(domSource, sr);
            Log.v(TAG, "Сохранено.");
        } catch (TransformerConfigurationException tce){
            Log.e(TAG, "Ошибка: ", tce);
        } catch (TransformerException te){
            Log.e("Error", String.valueOf(te));
        } catch (ParserConfigurationException pce) {
            Log.e(TAG, "Ошибка: ", pce);
        } catch (Exception e){
            Log.e(TAG, "Ошибка: ", e);
        }
    }
}
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
26.03.2013, 02:30     Создание XML #19
VictorAkira,

не забудь только в манифест добавить:

XML
1
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Да и если папки /mnt/sdcard/DCIM не существует файл не сохранится! Можно конечно добавить создание папки и создать например класс для получаемых данных и т.д. но мне лень, остальное сам добавишь.
Кстати папка DCIM вообще-то не предназначена для xml.

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
package com.test.createxml;
 
import java.io.File;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
 
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
 
public class CreateXML extends Activity {
 
    private static final String TAG = "123";
    private static final String PATH = Environment.getExternalStorageDirectory() +
            "/" + Environment.DIRECTORY_DCIM + "/file.xml";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        saveXML("4");   // в параметре указывается кол-во отступов  
    }
 
    private void saveXML(String indents) {
        try {
            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
            
            // root element
            Document doc = docBuilder.newDocument();
            Element rootElement = doc.createElement("Question");
            doc.appendChild(rootElement);
            
            // item1 element
            Element item1 = doc.createElement("item");
            rootElement.appendChild(item1);
            
            // set attribute to item1 element
            item1.setAttribute("Title", "Наименование компании:");
            item1.setAttribute("CheckBox", "");
            item1.setAttribute("Answer", "Наименование компании:");
            item1.setAttribute("AnswerEdit", "ООО Гангнам стайл");
            item1.setAttribute("AnswerEdit_2", "");
            
            // item2 element
            Element item2 = doc.createElement("item");
            rootElement.appendChild(item2);
                        
            // set attribute to item2 element
            item2.setAttribute("Title", "Адрес:");
            item2.setAttribute("CheckBox", "");
            item2.setAttribute("Answer", "Адрес:");
            item2.setAttribute("AnswerEdit", "Минск");
            item2.setAttribute("AnswerEdit_2", ""); 
     
            // write the content into xml file
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc.getDocumentElement());
            StreamResult result = new StreamResult(new File(PATH));
            
            // set output properties
            transformer.setOutputProperty(OutputKeys.STANDALONE, "no");
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", indents);
            transformer.transform(source, result);
            
            Log.d(TAG, "File saved!");
            
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Добавлено через 33 секунды
Упс уже опоздал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 10:30     Создание XML
Еще ссылки по теме:

Константы XML Android
Android Создать базу данных с(Создание функции БД, Создание процедуры БД, Создание тригера БД)
Создание экрана программно и через xml файл Android
Android Разметка XML
Создание объекта через xml разметку. NullPointerExeption Android

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

Или воспользуйтесь поиском по форуму:
VictorAkira
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
26.03.2013, 10:30  [ТС]     Создание XML #20
Огромное Вам спасибо!!!
Yandex
Объявления
26.03.2013, 10:30     Создание XML
Ответ Создать тему
Опции темы

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