Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1277 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Récupération de la valeur d'un élément XML avec SAX

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupération de la valeur d'un élément XML avec SAX

n°1528569
ruido
Posté le 14-03-2007 à 17:59:46  profilanswer
 

Salut a tous !  
 
Je me lance dans l'écriture d'un parser XML avec SAX en JAVA et j'ai un petit probleme. Si on prend l'exemple suivant :  
 

Citation :

<Personnes>
  <Personne>
    <nom>martin</nom>
    <prenom>charles</prenom>
  </Personne>
  <Personne>
    <nom>pierre</nom>
    <prenom>henri</prenom>
  </Personne>
</Personnes>


 
J'utilise l'API SAX pour parser le fichier XML ci-dessus. Je voudrais savoir s'il était possible de récupérer la valeur d'une balise particulière ? Par exemple je voudrais que mon parser me mette dans une liste (ou meme m'affiche tout simplement) l'ensemble des noms i.e. dès que mon parser rencontre la balise <nom> le contenu des balises est affiché. J'aurais donc au final une liste contenant l'ensemble des noms [martin,pierre].  
 
D'après ce que j'ai compris il s'agirait de combiner les méthodes startElement et characters d'un DefaultHandler, mais je ne vois pas trop comment faire, donc si vous avez des idées je suis preneur !  
 
Merci !  

mood
Publicité
Posté le 14-03-2007 à 17:59:46  profilanswer
 

n°1528847
ruido
Posté le 15-03-2007 à 12:15:24  profilanswer
 

Personne ? Bon ...

n°1528913
phnatomass
Je m'empare de ton esprit !!
Posté le 15-03-2007 à 14:25:28  profilanswer
 

C'est peut-être pourri mais t'as qu'à t'en inspirer

Code :
  1. public class NomHandler extends DefaultHandler {
  2. public final static String NOM = "nom";
  3. private boolean isCurrentElement = false;
  4. private List listNom = null;
  5. public void startDocument() throws SAXException {
  6.  listNom = new ArrayList();
  7. }
  8. public void startElement(String uri, String localName, String qName,
  9.   Attributes attributes) throws SAXException {
  10.  if (NOM.endsWith(qName)) {
  11.   isCurrentElement = true;
  12.  }
  13. }
  14. public void characters(char[] ch, int start, int length)
  15.   throws SAXException {
  16.  if (isCurrentElement) {
  17.   listNom.add(new String(ch, start, length));
  18.  }
  19. }
  20. public void endElement(String uri, String localName, String qName)
  21.   throws SAXException {
  22.  if (NOM.endsWith(qName)) {
  23.   isCurrentElement = false;
  24.  }
  25. }
  26. public void endDocument() throws SAXException {
  27.  System.out.println(listNom);
  28. }
  29. }



Message édité par phnatomass le 15-03-2007 à 14:26:00
n°1528979
ruido
Posté le 15-03-2007 à 16:24:44  profilanswer
 

Merci beaucoup pour ton aide phnatomass !  
 
Effectivement ca me donne une bonne base pour continuer a jouer avec SAX !  
 
Que les dieux de l'Olympe soient avec toi !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Récupération de la valeur d'un élément XML avec SAX

 

Sujets relatifs
Creation de projecteur, fscommand, XML et... Mac !!Est-il possible de faire une recherche dans un object Element
[SHELL] extraction valeur de commande SQLRécupération d'n fichier par FTP
[VBA-Excel] Contenu de ListBox dépendant de la valeur d'une celluleapplet java et recuperation des variables de session
[PHP][XML] Afficher xml dans page phpcomment garder une valeur généré?
[JS] Remplir un champ avec la valeur d'un select[Excel] recherche toutes les lignes qui ont la même valeur.
Plus de sujets relatifs à : Récupération de la valeur d'un élément XML avec SAX


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR