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 :

suppression d'element xml en java [JDOM]


Sujet :

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

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut suppression d'element xml en java
    Salut

    Voilà, j'ai un fichier XML comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <languages>
        <language id="1" ownerGroup="1" name="modele" fileName="modele.xml" state="public">
            <scenarios>
                <scenario id="2" ownerGroup="1" name="scenario1" fileName="scenario.xml" state="private"/>
            </scenarios>
        </language>
        <language id="9aa81d1a1e73536e989f87ba7e7aa1ca" ownerGroup="1" name="modele2" fileName="9aa81d1a1e73536e989f87ba7e7aa1ca.xml" state="private">
            <scenarios/>
        </language>
    </languages>
    Je voudrais supprimer tout l'élément language avce tout son contenu si la valeur de son attribut fileName = "modele.xml" par exemple. Dans ca ca c'est le premier bloc language qui doit être viré. Quelqu'un peut m'aider s'il vous plaît. j'ai fait un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
          List listModeles = racine.getChildren("language");
          Iterator i = llistModeles.iterator();
          //On parcours la liste grâce à un iterator
          while(i.hasNext())
          {
             Element courant = (Element)i.next();
     
             if(courant.getAttributeValue("fileName").equals("modele.xml"))
             {
            	 racine.removeChild("language");
             }
          }
    Bien entendu ça ne marche pas sachant que racine dans mon cas = "languages". Faites bien la différence entre languages et language.

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Tu utilise JDOM apparemment non ?

    Précise ton api s'il te plait

    Si c'est bien JDOM, je verrai plutot un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
          List listModeles = racine.getChildren("language");
          Iterator i = llistModeles.iterator();
          //On parcours la liste grâce à un iterator
          while(i.hasNext())
          {
             Element courant = (Element)i.next();
     
             if(courant.getAttributeValue("fileName").equals("modele.xml"))
             {
            	 racine.removeChild("language",courant.getNamespace());
             }
          }
    En effet, si tu lui demande de supprimer à partir de la racine un element dont le nom est "language" mais sans aucun namespace, il ne trouvera rien et ta fonction renverra forcément faux...

    Fred

    P.S. : je n'ai pas pu vérifier car je n'ai pas de pc actuellement, je suis sur celui de mon père.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse mais ajouter le namespace ne change rien au problème. ça ne fonctionne toujours pas. Une autre solution??

  4. #4
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par anti_gone10 Voir le message
    Merci pour ta réponse mais ajouter le namespace ne change rien au problème. ça ne fonctionne toujours pas. Une autre solution??
    Ok, autre solution, toujours sous JDOM, la liste renvoyée par getChildren est dite "live", c'est à dire que toute modification de la liste renvoyée modifie le xml en lui même.
    Donc tu parcours la liste normalement et tu supprime dirrectement dans la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
          List listModeles = racine.getChildren("language");
          //On parcours la liste normalement
          for(int i=0;i<listModeles.size();i++)
          {
             Element courant = (Element)listModeles.get(i);
     
             if(courant.getAttributeValue("fileName").equals("modele.xml"))
             {
            	 listModeles.remove(i);
             }
          }
    Voilà voilà, se référer à la javadoc de JDOM :

    The returned list is "live" in document order and changes to it affect the element's actual contents.
    Fred
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut youpi
    Oui ça marce super.

    Merci beaucoup pour ta rapidité et ton efficacité.

    Je voudrais t'embêter un peu encore si tu permet

    Voilà je développe un site en local en jsp.

    Je voudrais intégrer un système de commentaires qui a l'air super cool c'est
    le JS-Kit.
    http://js-kit.com/comments/. On dit qu'il suffit d'intégrer un bout de code dans une page html. voilà le bout de code:

    <div class="js-kit-comments"></div>
    <script src="http://js-kit.com/comments.js"></script>

    ça marche effectivement. Le problème c'est que ça ne sauvegarde pas les commentaires postés.
    Il se trouve qu'il est souvent utilisé. on trouve pleins de gens sur des forums qui disent qu'il suffit d'intégrer ce bout de code pour que ça marche et quand on va sur leur site ou sur leur blog effectivement ça marche et ça garde les commentaires sans avoir recours à une BDD. j'ai beau cherché le mode d'emploi de ce js-kit, je ne trouve pas. je crois que je suis à côté de la plaque. Tu pourras peut-être me donner un coup de main

    Merci beaucoup

    Sabrina

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    j'ai vu mavina que tu as une adresse msn. tu permets que je t'ajoute à ma liste msn messenger?

    sab

  7. #7
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Malheuresement je ne connais pas ce système de commentaires. Peut-être qu'en postant dans la rubrique appropriée (Développement Web en Java), tu trouverai quelqu'un qui puisse t'aider.
    Pour msn, si tu veux mais je ne suis pas souvent connecté par faute de temps et de pc.

    Cordialement

    Fred

    P.S. : n'oublie pas le Résolu !
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

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

Discussions similaires

  1. Ajouter un root element à un fichier XML via Java
    Par filor dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 09/09/2009, 14h57
  2. [DOM] Suppression d'un element XML
    Par chabada dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 15/06/2005, 10h19
  3. Documentation sur la manière de travailler avec le XML en java
    Par DelPiero62 dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 26/03/2003, 09h16
  4. [DOM] suppression d'un noeud fils xml en JAVA
    Par alexandre54 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 20/03/2003, 09h44
  5. XML et Java
    Par pantin dans le forum Valider
    Réponses: 3
    Dernier message: 17/03/2003, 14h14

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