Tutoriel sur le traitement de XML sous Android avec XmlPullParser

Le traitement de XML sous Android

Cet article décrit comment traiter XML sous Android. Il est basé sur Eclipse 4.2, Java 1.6 et Android 4.2.

Nous remercions Lars Vogel qui nous a aimablement autorisé à traduire et héberger cet article.

N'hésitez pas à commenter cet article ! 1 commentaire Donner une note à l'article (5)

Article lu   fois.

Les deux auteur et traducteur

Site personnel

Traducteur : Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

1 Introduction à XML

1.1 Vue d'ensemble de XML

XML est le sigle pour Extensible Markup Language et a été défini en 1998 par le World Wide Web Consortium (W3C).

Un document XML est constitué par des éléments ayant chacun une balise de début, un contenu et une balise de fin. Un document XML doit avoir exactement un élément racine (une balise qui renferme toutes les autres balises). XML fait la distinction entre les lettres majuscules et minuscules.

Un fichier XML doit être « bien formé ».

Un fichier XML bien formé doit remplir les conditions suivantes :
• un document XML commence toujours par un prologue (voir ci-dessous une explication sur ce qu'est un prologue) ;
• chaque balise d'ouverture a une balise de fermeture ;
• toutes les balises sont complètement imbriquées.

Un fichier XML est dit valide s'il est bien formé et s'il contient un lien vers un schéma XML. Il est valide par rapport à ce schéma.

L'utilisation de XML présente les avantages suivants par rapport à l'utilisation d'un format binaire ou non structuré :
• XML est du texte brut ;
• XML représente les données sans définir comment elles doivent être affichées ;
• XML peut être transformé en d'autres formats à l'aide de XSL ;
• XML peut être facilement traité en utilisant des parseurs standard ;
• les fichiers XML sont hiérarchiques.

1.2 Exemple XML

Ce qui suit est un fichier XML valide, bien formé.

 
Sélectionnez
<?xml version="1.0"?>
<!-- This is a comment -->
<address>
  <name>Lars </name>
  <street> Test </street>
  <telephone number= "0123"/>
</address>

1.3 Éléments XML

Un document XML commence toujours par un prologue qui décrit le fichier XML. Ce prologue peut être minimal, par exemple <?xml version="1.0"?> ou peut contenir d'autres informations, par exemple l'encodage : <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Une balise qui ne renferme aucun contenu est connue sous le nom de balise vide. Par exemple : <flag/>

Les commentaires en XML sont définis comme : <! COMMENTAIRE>

2 Le traitement de XML sous Android

Le langage de programmation Java fournit plusieurs bibliothèques standards pour le traitement des fichiers XML. Les parseurs XML, SAX et DOM sont également disponibles sur Android.

L'API parseur SAX et DOM est la même sous Android que dans la norme Java. SAX et DOM ont leurs limitations, donc il n'est pas recommandé de les utiliser sur Android. Par conséquent, ce tutoriel ne donne pas d'exemple pour l'utilisation de ces bibliothèques.

La norme Java fournit également le parseur Stax. Ce dernier ne fait pas partie de la plate-forme Android.

Android fournit la classe XmlPullParser pour analyser et écrire du XML. Ce parseur n'est pas disponible dans la norme Java, mais il est similaire à Stax. Il est hébergé sur http://www.xmlpull.org/.

Sur Android, il est recommandé d'utiliser XmlPullParser. Il a une API relativement simple en comparaison avec SAX et DOM, est rapide et nécessite moins de mémoire que l'API DOM.

3 Exemple XmlPullParser

La Javadoc de XmlPullParser donne un bon exemple sur comment vous pouvez utiliser cette bibliothèque.

 
Sélectionnez
import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException.html;
 import org.xmlpull.v1.XmlPullParserFactory;

 public class SimpleXmlPullApp
 {

     public static void main (String args[])
         throws XmlPullParserException, IOException
     {
         XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
         factory.setNamespaceAware(true);
         XmlPullParser xpp = factory.newPullParser();

         xpp.setInput(new StringReader ("<foo>Hello World!</foo>"));
         int eventType = xpp.getEventType();
         while (eventType != XmlPullParser.END_DOCUMENT) {
          if(eventType == XmlPullParser.START_DOCUMENT) {
              System.out.println("Start document");
          } else if(eventType == XmlPullParser.END_DOCUMENT) {
              System.out.println("End document");
          } else if(eventType == XmlPullParser.START_TAG) {
              System.out.println("Start tag "+xpp.getName());
          } else if(eventType == XmlPullParser.END_TAG) {
              System.out.println("End tag "+xpp.getName());
          } else if(eventType == XmlPullParser.TEXT) {
              System.out.println("Text "+xpp.getText());
          }
          eventType = xpp.next();
         }
     }
 }

4 Liens et littérature

5 Remerciements Developpez

Vous pouvez retrouver l'article original ici : Android XML Processing with the XmlPullParser - Tutorial. Nous remercions Lars Vogel qui nous a aimablement autorisé à traduire et héberger ses articles.

Nous remercions aussi Mishulyna pour sa traduction, ainsi que milkoseck pour sa relecture orthographique.

N'hésitez pas à commenter cet article ! 1 commentaire Donner une note à l'article (5)

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Licence Creative Commons
Le contenu de cet article est rédigé par Lars Vogel et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2013 Developpez.com.