rombra Posté(e) 4 janvier 2011 Share Posté(e) 4 janvier 2011 Bonjour tout le monde et bonne année pour commencer ^^ ! Avec trois autres étudiants, nous devons réaliser une application Android permettant d'accéder au catalogue d'une bibliothèque. C'est notre première appli sur Android donc nous galérons un peu surtout pour parser le fichier XML. En fait les données de la bibli sont sur un fichier XML (titre du livre, auteur, éditeur...) et nous aimerions récupérer ces données afin d'instancier des objets et de pouvoir les afficher lors d'une recherche d'un livre par un utilisateur par exemple . Comment faire ? Nous avons vu qu'il fallait utiliser l'API SAX ou DOM mais on comprends pas vraiment comment ca marche ! Merci d'avance =) Lien vers le commentaire Partager sur d’autres sites More sharing options...
gmic Posté(e) 4 janvier 2011 Share Posté(e) 4 janvier 2011 En fait les données de la bibli sont sur un fichier XML (titre du livre, auteur, éditeur...) et nous aimerions récupérer ces données afin d'instancier des objets et de pouvoir les afficher lors d'une recherche d'un livre par un utilisateur par exemple . Comment faire ? Nous avons vu qu'il fallait utiliser l'API SAX ou DOM mais on comprends pas vraiment comment ca marche ! Tout dépend de ce dont vous avez besoin, SAX est utile pour parser une fois le XML à la volée, il faut donc stocker au fur et à mesure les données dans une liste par exemple ou les insérer dans une bdd locale si besoin. DOM se contente de charger en mémoire le fichier XML, et on peut accéder ensuite à n'importe quel élément. SAX est peut être un peu plus difficile à intégrer, mais c'est en général un meilleur choix, moins de place en mémoire occuper et plus rapide/facile ensuite une fois le parsing effectuer puisque les données sont dans une liste prête à être afficher / enregistrer en bdd. Lien vers le commentaire Partager sur d’autres sites More sharing options...
rombra Posté(e) 5 janvier 2011 Auteur Share Posté(e) 5 janvier 2011 Merci gmic ! Mais en fait on a surtout un problème au niveau du code ! Car le principe on a compris mais on ne sait pas comment le mettre en pratique après ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
gmic Posté(e) 5 janvier 2011 Share Posté(e) 5 janvier 2011 Il te fait créer un objet SAXParser, créer une classe qui étends de DefaultHandler et qui va gérer ("handle") ce qui va se passer lorsque le fichier xml sera parsé. Dans cette classe, tu vas redéfinir les méthodes startElement, characters et endElement. Dans la première tu enregistres dans quelle balise tu es, dans la seconde tu lis le contenu de la balise, et dans la dernière tu remets à zéro la balise ouverte. C'est pas très intuitif comme code c'est sûr, il faut comprendre que le parseur ne va lire qu'une fois le fichier, dès qu'il rencontre une balise ouvrante il exécute startElement, dès qu'il trouve du texte entre 2 balises il exécute character, et endElement à chaque fermeture de balise qu'il rencontre. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 12 janvier 2011 Share Posté(e) 12 janvier 2011 Les bases : http://java.developpez.com/faq/xml/?page=sax#parserSax Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.