Xaz Posted May 2, 2011 Share Posted May 2, 2011 Bonjour à tous, Après plusieurs recherches sur internet, je n'ai pas trouvé de solutions à mon problème... En effet, je suis actuellement en train de développer une application android et je me trouve confronté à un problème que je ne sais résoudre et votre grande sagesse me serais d'un grand secours :) Je récupère un fichier XML à partir d'une URL (pour le moment pas de problème). Je souhaiterais pouvoir parser ce fichier XML et le désérialiser. Le fichier XML en question est de cette forme: <SOURCE> <NOM> j'ai ici un nom </NOM> <PRENOM> ceci est un prénom </PRENOM> </SOURCE> J'ai créé une classe générique et je souhaiterais parser mon fichier XML de telle sorte que le parseur me créé un objet de ma classe générique en créant les attribut à la volée. Un exemple est plus explicite: Avec mon fichier ci-dessus, je voudrais: Classe_generique objet = new Classe_generique(); objet.createAttribut(source, "SOURCE"); objet.createAttribut(1erBALISE_ENFANT.getName(), "NOM"); objet.createAttribut(2eBALISE_ENFANT.getName(), "PRENOM"); Je ne sais pas si c'est possible mais ce serait gentil de me donner votre avis :) Merci beaucoup à tous les gens qui prendront le temps de me lire Link to comment Share on other sites More sharing options...
croustaille Posted May 2, 2011 Share Posted May 2, 2011 Bonjour, j'ai eu à faire au même problème. il faut que tu regardes les sujets traitant des flux RSS avec Android. tu auras la solution. http://www.warriorpoint.com/blog/2009/07/19/android-reading-using-and-working-with-xml-data-and-web-services-in-android/ suis ce tuto . Simple et çà fonctionne surtout :P Bonjour à tous, Après plusieurs recherches sur internet, je n'ai pas trouvé de solutions à mon problème... En effet, je suis actuellement en train de développer une application android et je me trouve confronté à un problème que je ne sais résoudre et votre grande sagesse me serais d'un grand secours :) Je récupère un fichier XML à partir d'une URL (pour le moment pas de problème). Je souhaiterais pouvoir parser ce fichier XML et le désérialiser. Le fichier XML en question est de cette forme: <SOURCE> <NOM> j'ai ici un nom </NOM> <PRENOM> ceci est un prénom </PRENOM> </SOURCE> J'ai créé une classe générique et je souhaiterais parser mon fichier XML de telle sorte que le parseur me créé un objet de ma classe générique en créant les attribut à la volée. Un exemple est plus explicite: Avec mon fichier ci-dessus, je voudrais: Classe_generique objet = new Classe_generique(); objet.createAttribut(source, "SOURCE"); objet.createAttribut(1erBALISE_ENFANT.getName(), "NOM"); objet.createAttribut(2eBALISE_ENFANT.getName(), "PRENOM"); Je ne sais pas si c'est possible mais ce serait gentil de me donner votre avis :) Merci beaucoup à tous les gens qui prendront le temps de me lire Link to comment Share on other sites More sharing options...
Xaz Posted May 2, 2011 Author Share Posted May 2, 2011 Bonjour, j'ai eu à faire au même problème. il faut que tu regardes les sujets traitant des flux RSS avec Android. tu auras la solution. http://www.warriorpo...ces-in-android/ suis ce tuto . Simple et çà fonctionne surtout :P Merci beaucoup pour ta réponse rapide. Je regarde et je reviens vers toi :) Link to comment Share on other sites More sharing options...
Xaz Posted May 2, 2011 Author Share Posted May 2, 2011 Je viens de regarder. Cela répond à mon premier problème, à savoir: parser le xml venant d'internet vers un objet java. Malheureusement, mon deuxième soucis est que je ne connais pas d'avance les balises XML. Je souhaiterais donc pouvoir instancier un objet générique à la réception du fichier XML mais que la classe de cet objet ne contienne aucun attribut. Les attribut de cette classe seraient dont créés à la volée c'est à dire que je récupérerais le nom de la balise XML dans l'exemple ci-dessus <NOM> et sa valeur. Je créerais un attribut dans ma classe générique: String NOM = "la_valeur_de_la_balise" et ainsi de suite pour les autres balises. Je répète que ces attributs n'existe pas dans la classe à l'instanciation de l'objet. Merci beaucoup! Link to comment Share on other sites More sharing options...
croustaille Posted May 2, 2011 Share Posted May 2, 2011 Essaye une fonction récursive pour récupérer les valeur de tes objets : File file = new File("c:\\MyXMLFile.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(file); doc.getDocumentElement().normalize(); NodeList nodeLst = doc.getChildNodes(); for (int s = 0; s < nodeLst.getLength(); s++) { Node fstNode = nodeLst.item(s); if (fstNode.getNodeType() == Node.ELEMENT_NODE) { Element fstElmnt = (Element) fstNode; String name=fstElmnt.getNodeName(); String value=fstElmnt.getNodeValue(); } } un truc comme çà la récursive en plus. http://www.java-tips.org/java-se-tips/javax.xml.parsers/how-to-read-xml-file-in-java.html par contre pour construire ton objet, tu as plus qu'à utiliser un doc xml je pense.. good luck :) Je viens de regarder. Cela répond à mon premier problème, à savoir: parser le xml venant d'internet vers un objet java. Malheureusement, mon deuxième soucis est que je ne connais pas d'avance les balises XML. Je souhaiterais donc pouvoir instancier un objet générique à la réception du fichier XML mais que la classe de cet objet ne contienne aucun attribut. Les attribut de cette classe seraient dont créés à la volée c'est à dire que je récupérerais le nom de la balise XML dans l'exemple ci-dessus <NOM> et sa valeur. Je créerais un attribut dans ma classe générique: String NOM = "la_valeur_de_la_balise" et ainsi de suite pour les autres balises. Je répète que ces attributs n'existe pas dans la classe à l'instanciation de l'objet. Merci beaucoup! Link to comment Share on other sites More sharing options...
Xaz Posted May 3, 2011 Author Share Posted May 3, 2011 Pour répondre à ma question, la génération d'attribut à la volée en android est impossible. En effet, cela demande l'utilisation de framework java de manipulation de bytecode non supportés par android; la machine virtuelle android est une Davilk VM. Merci à tous de vous être intéressés à mon sujet. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.