[代码] SimpleExampleActivity.java
01package com.javacodegeeks.xml.bind;
02
03import java.io.IOException;
04import java.io.Reader;
05import java.io.StringReader;
06
07import org.apache.http.HttpEntity;
08import org.apache.http.HttpResponse;
09import org.apache.http.HttpStatus;
10import org.apache.http.client.methods.HttpGet;
11import org.apache.http.impl.client.DefaultHttpClient;
12import org.apache.http.util.EntityUtils;
13import org.simpleframework.xml.Serializer;
14import org.simpleframework.xml.core.Persister;
15
16import android.app.Activity;
17import android.os.Bundle;
18import android.util.Log;
19import android.widget.Toast;
20
21import com.javacodegeeks.xml.bind.model.OpenSearchDescription;
22
23public class SimpleExampleActivity extends Activity {
24
25 private static final String url =
26 "http://dl.dropbox.com/u/7215751/JavaCodeGeeks/AndroidFullAppTutorialPart03/Transformers+2007.xml";
27
28 private DefaultHttpClient client = new DefaultHttpClient();
29
30 @Override
31 public void onCreate(Bundle savedInstanceState) {
32
33 super.onCreate(savedInstanceState);
34 setContentView(R.layout.main);
35
36 try {
37
38 String xmlData = retrieve(url);
39 Serializer serializer = new Persister();
40
41 Reader reader = new StringReader(xmlData);
42 OpenSearchDescription osd =
43 serializer.read(OpenSearchDescription.class, reader,false);
44
45 Log.d(SimpleExampleActivity.class.getSimpleName(), osd.toString());
46
47 }
48 catch (Exception e) {
49 Toast.makeText(this, "Error Occured", Toast.LENGTH_LONG).show();
50 }
51
52 }
53
54 public String retrieve(String url) {
55
56 HttpGet getRequest = new HttpGet(url);
57
58 try {
59
60 HttpResponse getResponse = client.execute(getRequest);
61 final int statusCode = getResponse.getStatusLine().getStatusCode();
62
63 if (statusCode != HttpStatus.SC_OK) {
64 return null;
65 }
66
67 HttpEntity getResponseEntity = getResponse.getEntity();
68
69 if (getResponseEntity != null) {
70 return EntityUtils.toString(getResponseEntity);
71 }
72
73 }
74 catch (IOException e) {
75 getRequest.abort();
76 Log.w(getClass().getSimpleName(), "Error for URL " + url, e);
77 }
78
79 return null;
80
81 }
82
83}
[代码] OpenSearchDescription.java
01package com.javacodegeeks.xml.bind.model;
02
03import java.util.List;
04
05import org.simpleframework.xml.Element;
06import org.simpleframework.xml.ElementList;
07import org.simpleframework.xml.Root;
08
09@Root
10public class OpenSearchDescription {
11
12 @Element(name="Query")
13 public Query query;
14
15 @Element
16 public int totalResults;
17
18 @ElementList
19 public List movies;
20
21}
[代码] Query.java
01package com.javacodegeeks.xml.bind.model;
02
03import org.simpleframework.xml.Attribute;
04import org.simpleframework.xml.Element;
05
06@Element
07public class Query {
08
09 @Attribute
10 public String searchTerms;
11
12}
[代码] Movie.java
01package com.javacodegeeks.xml.bind.model;
02
03import java.util.List;
04
05import org.simpleframework.xml.Element;
06import org.simpleframework.xml.ElementList;
07
08@Element(name="movie")
09public class Movie {
10
11 @Element(required=false)
12 public String score;
13
14 @Element(required=false)
15 public String popularity;
16
17 @Element(required=false)
18 public String name;
19
20 @Element(required=false)
21 public String id;
22
23 @Element(required=false)
24 public String biography;
25
26 @Element(required=false)
27 public String url;
28
29 @Element(required=false)
30 public String version;
31
32 @Element(required=false)
33 public String lastModifiedAt;
34
35 @ElementList
36 public Listimages;
37
38}
[代码] Image.java
01package com.javacodegeeks.xml.bind.model;
02
03import org.simpleframework.xml.Attribute;
04import org.simpleframework.xml.Element;
05
06@Element(name="image")
07public class Image {
08
09 @Attribute
10 public String type;
11
12 @Attribute
13 public String url;
14
15 @Attribute
16 public String size;
17
18 @Attribute
19 public int width;
20
21 @Attribute
22 public int height;
23
24 @Attribute
25 public String id;
26
27}