Salut,
je suis debutant en android mon application consiste a parser une fichier xml en ligne et afficher dans un liste view.
Voila mon fichier xml :
voila fichier main.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <maintag> <item> <name>nom utilisateur</name> <website>www.nomutilisateur.com</website> </item> <item> <name>autrenom</name> <website>www.autrnom.com</website> </item> </maintag>
classe XMLParsingExample.java et l suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/hotel9" android:orientation="horizontal" > <ImageView android:id="@+id/img" android:layout_width="65dp" android:layout_height="120dp" android:layout_weight="1" android:padding="10dip" /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="230dp" android:layout_height="128dp" android:orientation="vertical" android:paddingLeft="10dip" > <TextView android:id="@+id/name" android:layout_width="224dp" android:layout_height="57dp" android:textSize="16dip" android:textStyle="bold" /> <TextView android:id="@+id/website" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout>
Voila class siteliste.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.androidpeople.xml.parsing; import java.net.URL; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class XMLParsingExample extends Activity { /** Create Object For SiteList Class */ SitesList sitesList = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView nameTextView = (TextView) findViewById(R.id.name); TextView webTextView = (TextView) findViewById(R.id.website); try { /** Handling XML */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); /** Send URL to parse XML Tags */ URL sourceUrl = new URL( "http://testandroid.hebergratuit.com/aaaa.xml"); /** Create handler to handle XML Tags ( extends DefaultHandler ) */ MyXMLHandler myXMLHandler = new MyXMLHandler(); xr.setContentHandler(myXMLHandler); xr.parse(new InputSource(sourceUrl.openStream())); } catch (Exception e) { System.out.println("XML Pasing Excpetion = " + e); } /** Get result from MyXMLHandler SitlesList Object */ sitesList = MyXMLHandler.sitesList; for (int i = 0; i < sitesList.getName().size(); i++) { nameTextView.setText(sitesList.getName().get(i)); nameTextView.setText("Name = "+sitesList.getName().get(i)); webTextView.setText("Website = "+sitesList.getWebsite().get(i)); }}
class MyXMLHandler :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.androidpeople.xml.parsing; import java.util.ArrayList; /** Contains getter and setter method for varialbles */ public class SitesList { /** Variables */ private ArrayList<String> name = new ArrayList<String>(); private ArrayList<String> website = new ArrayList<String>(); private ArrayList<String> category = new ArrayList<String>(); /** In Setter method default it will return arraylist * change that to add */ public ArrayList<String> getName() { return name; } public void setName(String name) { this.name.add(name); } public ArrayList<String> getWebsite() { return website; } public void setWebsite(String website) { this.website.add(website); }
je veux afficher tous les item de fichier xml, mais mon application n'affiche rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.androidpeople.xml.parsing; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class MyXMLHandler extends DefaultHandler { Boolean currentElement = false; String currentValue = null; public static SitesList sitesList = null; public static SitesList getSitesList() { return sitesList; } public static void setSitesList(SitesList sitesList) { MyXMLHandler.sitesList = sitesList; } @Override public void startElement(String uri, String localName, String qName, ) throws SAXException { currentElement = true; if (localName.equals("maintag")) { @Override public void endElement(String uri, String localName, String qName) throws SAXException { currentElement = false; /** set value */ if (localName.equalsIgnoreCase("name")) sitesList.setName(currentValue); else if (localName.equalsIgnoreCase("website")) sitesList.setWebsite(currentValue); } /** Called to get tag characters ( ex:- <name>AndroidPeople</name> * -- to get AndroidPeople Character ) */ @Override public void characters(char[] ch, int start, int length) throws SAXException { if (currentElement) { currentValue = new String(ch, start, length); currentElement = false; } } }.
Merciiiiiiii![]()
Partager