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 :

Créer Element dans un document XML


Sujet :

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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 41
    Points
    41
    Par défaut Créer Element dans un document XML
    Bonjour,

    Je debute sur le XML et l api DOM. C est quand meme quelque chose d assez puissant.

    Bref j aimerai faire une chose mais ca me semble un peu compliqué avec ma maniere.
    Ce que j aimerai est de Creer un type Element en fonction d une String et non d'un fichier.

    Genre j ai ma chaîne :
    <toto aa="123" bb="456" /> Et j aimerai le transformer en Type Element.
    La seule methode que j ai trouve est de creer un document et d 'utiliser la méthode parse(InputStream is) .


    Si vous avez une autre idee

    merci.

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Je comprend pas vraiment ce que tu veux. Si tu veux simplement créer un object Element, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tonDocument.getDocumentElement();//Ceci te renvoi l'élément root du fichier xml.
    Element e = tonDocument.createElement("lenomdelelement");
    Mais c'est ce que tu attend comme réponse?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    justement je n est pas de document.

    J ai un Vector d'element (que j ai rempli a partir d un document). J aimerai rajouter des elements dans ce vector sans avoir a faire au document.
    Les elements que je veux inserer ne sont pas present dans le dom. Ceux sont des elements que je cree a la volee, par rapport au lune string.

    Je m explique, j ai une Frame avec une JList et un JtextField.
    Quand j ecrit dans le JtextField et que j appuie sur entree, je veux que ca creer l element <toto aa="phrase du JTextField" /> et que ca me l insere dans le vector de la JList.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    Apres pluseurs recherche, ce que je voulais faire etait impossible.

    Maintenant j aurai une autre question :
    J ai un element :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <toto>
    .....
     
    <titi>
    <tata res="eeee"/>
    <tata res="rrrr"/>
    </titi>
    .....
    </toto>

    Ce que j aimerais faire c est enlver tout les element tata et les remplacer par par d autre et le mettre entre les balise titi.

    voici comme j ai fait (en supposant que j ai prealablement enlver tous les noeud tata):

    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
    // Je cree le document en parsant le fichier xml.
    Document dom = Util.parseXML(filename);
    // Je recupere le noeud racine du document
    Element root =  doc.getDocumentElement();
    
    // Maintenant je recupere le Noeud titi en parcourant la listes de noeuds de root
    NodeList nslt = root.getChildNodes();
    Node node;
    
    for (int i = 0; i < nlst.getLength(); i++) {
        node = nlst.item(i); 
        if (node.getNodeName().compareTo("titi") == 0)
            break;
    }
    // Je creer le nouveau element, je le rempli et je veux le mettre comme etant le fils de titi
    Element noeud = doc.createElement("tata");
    noeud.setAttribute("res", "oooo");
    node.appendChild(noeud);
    A la fin de doit obtenir :

    <titi>
    <tata res="oooo"/>
    </titi>
    .....
    </toto>
    [/code]

    Or j ai une erreur du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "AWT-EventQueue-0" org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. 
    	at com.sun.org.apache.xerces.internal.dom.NodeImpl.insertBefore(Unknown Source)
    	at com.sun.org.apache.xerces.internal.dom.NodeImpl.appendChild(Unknown Source)
    Du a la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    node.appendChild(noeud);
    Merci de votre aide.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 18
    Points
    18
    Par défaut C'est très utile de lire les tuto sur xml
    si tu utilise le jdom, tu a à ta disposition deux méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Element tonEltName = new Element("tonEltName");
    EltParent.addContent(tonEltName );
    également la méthode :removeChildren("tonEltName") pour supprimer les noeuds indésirables :

  6. #6
    Membre averti Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Points : 415
    Points
    415
    Par défaut
    Salut,

    Cherches du côté des requêtes XPATH
    Il est difficile d’attraper un chat noir dans une pièce sombre. Surtout lorsqu'il n’y est pas.

Discussions similaires

  1. Recherche d'element dans un document XML
    Par FlyByck dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/07/2010, 20h37
  2. Réponses: 4
    Dernier message: 09/05/2006, 11h33
  3. Sauver un TStream dans un document XML
    Par srvremi dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/10/2004, 13h17
  4. recherche dans un document xml via DOM
    Par ndoye_zaff dans le forum APIs
    Réponses: 5
    Dernier message: 11/06/2003, 14h44
  5. Stocker du texte mis en forme dans un document XML
    Par ovh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/02/2003, 10h23

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