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 :

Erreur lors de l'ajout


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    étudiante en mastère
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante en mastère
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Par défaut Erreur lors de l'ajout
    Bonjour à tous,
    Je suis en train d'ajouter un un fichier XML un nouveau utilisateur le document XML est organisé comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="utf-8"?>
    <Utilisateur>
    <login>TTTTT</login>
    <passwd>aaaa</passwd>
    </Utilisateur>
    Je voudrais ajouter un nouveau utilisateur de la même façon, juste au dessous de ceci.
    Le code est le suivant:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;
    import java.io.*;
    public class AjouterXXMML {
        private String login,passwd;
     
     
         public  void addUtilisateur(String BaseXML, String login,String passwd){
            try {
                DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
                DocumentBuilder constructeur = fabrique.newDocumentBuilder();
                Document document = constructeur.parse(BaseXML);
                Element root = document.getDocumentElement();
     Element Utilisa = document.createElement("Utilisateur");
    Element element = document.createElement("login");
                element.setTextContent(login);
                Utilisa.appendChild(element);
                Element pass = document.createElement("passwd");
                pass.setTextContent(passwd);
                Utilisa.appendChild(pass);
                root.appendChild(Utilisateur);
     
     TransformerFactory tfact =  TransformerFactory.newInstance();
             Transformer transformer =  tfact.newTransformer();
             DOMSource source = new DOMSource(document);
             File fichier= new File(BaseXML);
             FileWriter fw = new FileWriter(fichier);
     
             StreamResult result = new StreamResult(fw);
             transformer.transform(source, result);
      } catch (Exception ex) {
                Logger.getLogger(AjouterXXMML.class.getName()).log(Level.SEVERE, null, ex);
            }
     
     
     
     
    }
     
           public static void main(String[] args) throws IOException {
            // TODO code application logic here
          AjouterXXMML aj= new AjouterXXMML();
          aj.addUtilisateur("C:\\Base.xml","lllllllllll","AAAAA");
     
     
     
        }
    }
    L'erreur que se produit lors de l'exécution de ce code, cé que le fichier sera structuré comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Utilisateur>
    <login>TTTTT</login>
    <password>aaaa</passwd>
    <Utilisateur>
    <login>lllllllllll</login>
    <passwd>AAAAA</passwd>
    </Utilisateur>
    </Utilisateur>
    J'ai besoin de corriger cette erreur. Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 36
    Par défaut
    Salut,

    le problème ne se situerait-il pas a la ligne 18?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element root = document.getDocumentElement();
    à remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element root = document.getRootElement();

  3. #3
    Membre averti
    Femme Profil pro
    étudiante en mastère
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante en mastère
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Par défaut
    J'ai essayé de changer cette ligne avec cette instruction mais ça ne marche pas, car.getRootElement() n'existe pas comme étant une méthode.

  4. #4
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Dans xml 101, on ne dit pas que un document xml bien-formé ne doit avoir une racine et une seule? Il faut plutôt trace le xml quelque peu initial comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Utilisateurs>
    <Utilisateur>
    <login>TTTTT</login>
    <passwd>aaaa</passwd>
    </Utilisateur>
    </Utilisateurs>
    Puis vous ajoutez les utilisateurs nouveaux comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Utilisateurs>
    <Utilisateur>
    <login>TTTTT</login>
    <passwd>aaaa</passwd>
    </Utilisateur>
    <Utilisateur>
    <login>lllllllllll</login>
    <passwd>AAAAA</passwd>
    </Utilisateur>
    </Utilisateurs>

  5. #5
    Membre averti
    Femme Profil pro
    étudiante en mastère
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante en mastère
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Par défaut
    Pouvez-vous m'aider à corriger l'erreur au niveau de ce code, lorsque j'ajoute une balise <Utilisateurs> comme racine. Merci

  6. #6
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Il devient marcher comme tel et resulter comme anticipé avec la structure révisée du fichier BaseXML, non?

  7. #7
    Membre averti
    Femme Profil pro
    étudiante en mastère
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante en mastère
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Par défaut
    Oui évidemment, je veux ajuster ce code, de façon qu'il me donne comme rst:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Utilisateurs>
    <Utilisateur>
    <login>TTTTT</login>
    <passwd>aaaa</passwd>
    </Utilisateur>
    <Utilisateur>
    <login>lllllllllll</login>
    <passwd>AAAAA</passwd>
    </Utilisateur>
    </Utilisateurs>
    C'est à dire ajouter chaque nouvel utilisateur au dessous de la balise <Utilisateurs>
    Merci

  8. #8
    Membre averti
    Femme Profil pro
    étudiante en mastère
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante en mastère
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Par défaut
    J'ai fait cette modification au niveau du code:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    public  void addUtilisateur(String BaseXML, String login,String passwd){
            try {
                DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
                DocumentBuilder constructeur = fabrique.newDocumentBuilder();
                Document document = constructeur.parse(BaseXML);
                 Element root = document.getDocumentElement();
     
     
                Element Utilisa = document.createElement("Utilisateur");
                root.appendChild(Utilisa);
                 Element Utilisat = document.createElement("Utilisateur");
                root.appendChild(Utilisat);
     
     
                Element element = document.createElement("login");
                element.setTextContent(login);
                Utilisa.appendChild(element);
                Element pass = document.createElement("passwd");
                pass.setTextContent(passwd);
                Utilisa.appendChild(pass);
              TransformerFactory tfact =  TransformerFactory.newInstance();
             Transformer transformer =  tfact.newTransformer();
             DOMSource source = new DOMSource(document);
             File fichier= new File(BaseXML);
             FileWriter fw = new FileWriter(fichier);
     
             StreamResult result = new StreamResult(fw);
             transformer.transform(source, result);
      } catch (Exception ex) {
                Logger.getLogger(AjouterXXMML.class.getName()).log(Level.SEVERE, null, ex);
            }
     
     
     
     
    }
     
     
     
            public static void main(String[] args) throws IOException {
     AjouterXXMML aj= new AjouterXXMML();
          aj.addUtilisateur("C:\\Base.xml","lllllllllll","AAAAA");
    Le structure de fichier XML sera comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <Utilisateurs>
    <Utilisateur>
    <login>TTTTT</login>
    <password>aaaa</passwd>
    </Utilisateur>
    <Utilisateur>
    <login>lllllllllll</login>
    <passwd>AAAAA</passwd>
    </Utilisateur>
    <Utilisateur/>
    </Utilisateurs>
    Comment je peux corriger le code pour éliminer la balise Utilisateur écrit <Utilisateur/> juste avant la fermeture de la balise </Utilisateurs>
    merci

  9. #9
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Eliminez ces deux lignes #12-13. Pourquoi faire?!

  10. #10
    Membre averti
    Femme Profil pro
    étudiante en mastère
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante en mastère
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Par défaut
    Merci, ça fonctionne très bien

Discussions similaires

  1. Erreur lors de l'ajout d'une référence web
    Par Pilloutou dans le forum Visual Studio
    Réponses: 2
    Dernier message: 12/02/2007, 15h11
  2. Réponses: 4
    Dernier message: 06/01/2007, 23h11
  3. [INSERT] Erreur lors de l'ajout d'un objet
    Par bouchette63 dans le forum DB2
    Réponses: 3
    Dernier message: 30/08/2006, 09h32
  4. Réponses: 3
    Dernier message: 08/10/2005, 14h57
  5. Erreur lors de l'ajout d'une table
    Par FredMines dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/07/2005, 13h13

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