Está en la página 1de 5

XML Pull parser

Redes, Aplicaciones y Servicios en Internet (RASI)

Departamento de Sistemas Telem aticos y Computaci on (GSyC)

Noviembre de 2009

GSyC - 2009

XML Pull parser

c 2009 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution Share-Alike disponible en http://creativecommons.org/licenses/by-sa/2.1/es

GSyC - 2009

XML Pull parser

Contenidos
1

Procesamiento de XML en Android Bibliograf a

GSyC - 2009 Procesamiento de XML en Android

XML Pull parser

Contenidos
1

Procesamiento de XML en Android Bibliograf a

GSyC - 2009

XML Pull parser

Procesamiento de XML en Android

Introducci on

Siempre que se vaya a hacer uso de la red la aplicaci on tiene que incluir el siguiente permiso en el maniesto (AndroidManifest.xml):
<uses-permission android:name="android.permission.INTERNET"/>

En Android se puede utilizar la biblioteca de Java Simple API for XML (SAX) o el Document Object Model (DOM) para parsear XML Android no proporciona la Java XML Binding API ni la Streaming API for XML (StAX) Pero proporciona una API similar a StAX: XML pull parser

GSyC - 2009 Procesamiento de XML en Android

XML Pull parser

XML Pull parser


A diferencia de SAX, con XML pull parser hay que irle pidiendo expl citamente al parser los eventos con parser.next() Normalmente basta con procesar los eventos de comienzo de etiqueta para ir extrayendo los contenidos, y en cualquier momento se puede interrumpir el bucle de procesado si no se est a interesado en seguir procesando todo el chero Los eventos se env an como c odigos num ericos que se pueden procesar en un case-switch:
START_TAG: devuelto cuando se encuentra una nueva etiqueta ej: <etiqueta> TEXT: devuelto cuando se encuetra texto ej: <etiqueta>texto</etiqueta> END_TAG: devuelto cuando se encuentra un nal de etiqueta ej: </etiqueta> END_DOCUMENT: devuelto cuando se ha alcanzado el nal del chero XML
GSyC - 2009 XML Pull parser 6

Procesamiento de XML en Android

XML Pull parser: ejemplo (I)


onCreate()
try { URL text = new URL( "http://api.flickr.com/services/feeds/photos_public.gne?id=26648248@N04&amp;lang=en-us&amp;format=atom"); XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance(); XmlPullParser parser = parserCreator.newPullParser(); parser.setInput(text.openStream(), null); int parserEvent = parser.getEventType(); while (parserEvent != XmlPullParser.END_DOCUMENT) { switch (parserEvent) { case XmlPullParser.START_TAG: String tag = parser.getName(); if (tag.equalsIgnoreCase("title")) { Log.i("Net", "Title: " + parser.nextText()); } if (tag.equalsIgnoreCase("link")) { String relType = parser.getAttributeValue(null, "rel"); if (relType.equalsIgnoreCase("enclosure")) { String encType = parser.getAttributeValue(null, "type"); if (encType.startsWith("image/")) { String imageSrc = parser.getAttributeValue(null, "href"); Log.i("Net", "image source = " + imageSrc); } } } break; } parserEvent = parser.next(); } } catch (Exception e) { Log.e("Net", "Error in network call", e); }

GSyC - 2009 Procesamiento de XML en Android

XML Pull parser

XML Pull parser: ejemplo (II)


http://api.flickr.com/services/feeds/...
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:flickr="urn:flickr:" xmlns:media="http://search.yahoo.com/mrss/"> <title>Uploads from perlgurl.org</title> <link rel="self" href="http://api.flickr.com/services/feeds/photos_public.gne?id=26648248@N04&amp;amp;lang=en-us&amp;amp;format=atom" /> <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/perlgurl/"/> <id>tag:flickr.com,2005:/photos/public/26616109</id> <icon>http://farm4.static.flickr.com/3218/buddyicons/26648248@N04.jpg?1210968422#26648248@N04</icon> <subtitle></subtitle> <updated>2009-10-12T00:25:54Z</updated> <generator uri="http://www.flickr.com/">Flickr</generator> <entry> <title>Flaming Fall Foliage</title> <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/perlgurl/4003198882/"/> <id>tag:flickr.com,2005:/photo/4003198882</id> <published>2009-10-12T00:25:54Z</published> <updated>2009-10-12T00:25:54Z</updated> <dc:date.Taken>2009-10-07T00:04:19-08:00</dc:date.Taken> <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/people/perlgurl/&quot;&gt;perlgurl.org&lt;/a&gt; posted a photo:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/perlgurl/4003198882/&quot; title=&quot;Flaming Fall Foliage&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3432/4003198882_7fca0ffcd8_m.jpg&quot; width=&quot;240&quot; height=&quot;160&quot; alt=&quot;Flaming Fall Foliage&quot; /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Lower Baker Pond Reflection&lt;br /&gt; New Hampshire&lt;/p&gt; </content> <author> <name>perlgurl.org</name> <uri>http://www.flickr.com/people/perlgurl/</uri> </author> <link rel="enclosure" type="image/jpeg" href="http://farm4.static.flickr.com/3432/4003198882_7fca0ffcd8_m.jpg" /> <category term="autumn" scheme="http://www.flickr.com/photos/tags/" /> <category term="fall" scheme="http://www.flickr.com/photos/tags/" /> <category term="newengland" scheme="http://www.flickr.com/photos/tags/" /> <category term="newhampshire" scheme="http://www.flickr.com/photos/tags/" /> <category term="foliage" scheme="http://www.flickr.com/photos/tags/" /> <category term="amc" scheme="http://www.flickr.com/photos/tags/" /> <category term="scenics09" scheme="http://www.flickr.com/photos/tags/" /> </entry> <entry> ... </entry> </feed>

GSyC - 2009

XML Pull parser

Bibliograf a

Contenidos
1

Procesamiento de XML en Android Bibliograf a

GSyC - 2009 Bibliograf a

XML Pull parser

Bibliograf a

Cap tulo 10. Android Wireless Application Development. Shane Conder, Lauren Darcey. Addison Wesley 2010.
http://proquest.safaribooksonline.com/9780321619686

Working with XML on Android. Michael Galpin.


http://www.ibm.com/developerworks/opensource/library/x-android/index.html

Documentaci on del Android SDK: en la carpeta docs del directorio del SDK, o en
http://developer.android.com/guide/index.html

Documentaci on sobre Android (tutoriales, v deos,...): http://developer.android.com

GSyC - 2009

XML Pull parser

10

También podría gustarte