IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

2 balises identiques dans 2 champs différents de base de données [SAX]


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Par défaut 2 balises identiques dans 2 champs différents de base de données
    Bonjour ;
    J'essaye de parser un fichier xml pour extraire des informations que j'insère dans une base de données

    Mon problème c'est que le fichier peut contenir le cas suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <produits>
         <produit nom="fraise">  
         <categorie> aliment </categorie>
         <categorie> fruit  </categorie>
         </produit>
        <produit nom="fromage">  
         <categorie> aliment </categorie>
         <categorie> produit laitier  </categorie>
         </produit>
    
    </produits>
    et moi je veux insérer les deux valeurs (valeur1 , valeur2) dans ma table produits des champs différents (categorie , sous categorie)

    Dans le parsing je dois impérativement utiliser SAX. Le problème c'est comment l'amener à décider s'il est dans la première balise catégorie ou la deuxième parce que il y a des traitements différents ?


    Merci bcp d'avance

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour,

    désolé, mais je n'ai pas tout compris !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    je veux insérer les deux valeurs (valeur1 , valeur2) dans ma table produits des 
    champs différents (categorie , sous categorie)
    Pourrais tu nous donner un exemple ?

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Par défaut
    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <produits>
         <produit nom="fraise"> 
         <categorie> alimentation </categorie>
         <categorie> fruit </categorie>
         </produit>
         <produit nom="fromage"> 
         <categorie> alimentation </categorie>
         <categorie> produit laitier </categorie>
        </produit>
    </produits>

    j'aurai 2 enregistrements dans la table produits
    1) champ_nom : fraise
    champs_categorie : alimentation
    champs_sous_categorie : fruit
    2) champs_nom : fromage
    champs_categorie : alimentation
    champs_sous_categorie : produit laitier

    Mon problème dans tout ça c'est comment insérer les valeurs " alimentation" et " fruit" dans des champs différents alors que dans le fichier xml elles sont dans des balises identiques .

    J'espère que c'est plus claire

  4. #4
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Ok, les choses me semblent plus claires

    Pourquoi ne pas utiliser un compteur modulo 2 dans la méthode startElement.

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Par défaut
    Si je vous ai bien compris vous me suggérez d'incrémenter un compteur avec chaque start element et de tester sur compteur modulo 2 dans if(qName.equals("categorie").

    Si c'est le cas ; dans mon fichier xml le nombre des balises dans chaque élément n'est pas toujours le même c à d : je peux avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <produits>
    <produit nom="fraise"> 
    <categorie> aliment </categorie>
    <categorie> fruit </categorie>
    </produit>
     
    <produit nom="biscuit"> 
    <categorie> aliment </categorie>
    </produit>
     
    <produit nom="mixeur"> 
    <categorie> electroménager </categorie>
    <categorie> cuisine </categorie>
    <marque> MARKE </marque>
    </produit>
     
     
    <produit nom="fromage"> 
    <categorie> aliment </categorie>
    <categorie> produit laitier </categorie>
    </produit>
     
    </produits>
    Dans ce cas j'aurais des résultats faux

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    startElement
    -> si "produit" alors remettre le compteur à 0
    -> si catégorie, incrémenter le compteur
    endElement
    -> si catégorie, alors
    ---> si compteur ==1 => catégorie
    ---> si compteur ==2=> sous catégorie
    ---> sinon => erreur
    -> si produit alors insérer

    tout simplement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] ecriture correcte d'un chemin dans un champ d'une base de données
    Par new_wave dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/05/2014, 16h52
  2. [MySQL] 2 noms de champs identiques dans 2 tables différentes
    Par Shinoda00 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/06/2009, 09h23
  3. Réponses: 3
    Dernier message: 11/12/2007, 15h23
  4. Insérer des Balises HTML dans un champ mémo
    Par Heureux-oli dans le forum IHM
    Réponses: 18
    Dernier message: 21/03/2007, 20h05
  5. Sélection de 2 champs identiques dans 2 tables différentes
    Par Véronique75ca dans le forum Access
    Réponses: 3
    Dernier message: 28/06/2006, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo