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'un noeud fils xml en JAVA


Sujet :

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

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 21
    Points : 15
    Points
    15
    Par défaut suppression d'un noeud fils xml en JAVA
    Bonjour à tous.

    j'ai ce fichier xml: (gestion des oeuvres d'un musée)

    ------------------------------------------------
    <musee>
    <oeuvre IdOeuvre="1">
    <titre>la joconde</titre>
    </oeuvre>
    <oeuvre IdOeuvre="2">
    <titre>le penseur de rodin</titre>
    </oeuvre>
    ...
    </musee>
    -------------------------------------------------

    Je le récupère en JAVA (fichier JSP) grace à ce code:

    -----------------------------------------------------------
    Document webservice=XmlDOM.newDocument (new File("musee.xml"));
    Node nodeFound=XmlDOM.getNode(webservice, "Musee");
    Element fNode=XmlDOM.createElement (nodeFound);
    -------------------------------------------------------------
    J'ai donc un noeud nommé fNode qui contient l'arborescence de mon fichier 'musee.xml'.
    Et maintenant, je voudrais supprimer, par exemple, l'oeuvre de IdOeuvre=2.

    Comment puis-je faire??

    ps: je sais qu'il existe la commande 'fNode.removeChild();' mais je ne sais pas comment m'en servir et comment lui annoncer que je veux supprimer le fils du noeud 'Musee' pour l'attribut IdOeuvre égal à 2 !!


    Merci d'avance.

    Alex.

  2. #2
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 39
    Points : 46
    Points
    46
    Par défaut
    Ton exemple de code ressemble plus à du javascript qu'à du java pur. Si tu veux du java pur, fais le moi savoir et je t'enverrai en fonction. Mais on va partir du principe que tu fais du javascript. Voila un exemple de fonction utilisant le removechild():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function deleteNode(nodelist, attribute_name, attribute_to_delete){ 
    var kids = nodelist.childNodes; 
    var numkids = kids.length; 
    for(var i = 0; i<numkids;i++){ 
    if (kids[i].getAttribute(attribute_name)   == attribute_to_delete){ 
    nodelist.removeChild(kids[i]); 
    } 
    }
    Cette fonction prend don en argument un noeud, un nom d'attribut et une valeur. Elle supprime pour tous les fils du noeud considéré tout ceux qui ont comme valeur à l'attribut attribute_name la valeur attribute_to_delete.

    Je ne l'ai pas testé, mais ca devrait marcher. voila également un tutorial pas trop mal sur le sujet:
    [url]http://www.howtocreate.co.uk/tutorials/texterise.php?dom=1[url]

    En esperant t'avoir aidé... Bon courage

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Je te remercie bien. :o

    je n'ai pas encore testé mais ca parait pas mal.
    En fait, mon code est bien du JAVA (utilisant les méthodes d'une classe), mais je vais essayer d'adapter le javascript au JAVA.

    merci.

  4. #4
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 39
    Points : 46
    Points
    46
    Par défaut
    Ok trés bien, ton code est en java, il te suffit donc de regarder la javadoc pour savoir comment te servir de removeChild.... Utilises tu une classe développée du côté de chez vous ou bien une api standard genre DOM ou JDOM. pour ma part, je travaille avec JDOM et peux t'envoyer des bouts de code complet si tu veux... Bye

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    En fait, comme tu l'as vu, j'utilise bien une classe dans un framework développé par ma boite (j'y suis nouveau), et en fait cette classe (XmlDOM) permet d'utiliser des méthodes, etc...

    Pour le code que tu me propose, je te remercie bien mais ce ne sera pas la peine. J'ai utilisé une autre solution que je propose ci-dessous (ca fonctionne bien!)

    Le but est de supprimer un fils ds un noeud selon la valuer de l'attribut IdOeuvre de ce fils:

    [code
    String str_xpath="Oeuvre[@IdOeuvre='"+noeudoeuvre+"']";
    Node lefils=XPathAPI.selectSingleNode(nodeFound,str_xpath);
    if (lefils != null)
    nodeFound.removeChild(lefils);]
    [/code]

    où nodeFound est mon noeud de départ (noeud original) qui subira la suppression d' un de ses fils selon la requete Xpath.

    Voila.

    bye et encore merci pour l'aide (qui m'a mis sur la voie...)

    Alex.

  6. #6
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 39
    Points : 46
    Points
    46
    Par défaut
    C'était avec grand plaisir... bon courage pour la suite en tout cas... Bye

Discussions similaires

  1. [JDOM] suppression d'element xml en java
    Par anti_gone10 dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 10/09/2007, 11h06
  2. [XML] [DOM(XML?)] Suppression d'un noeud XML en php
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/01/2007, 15h11
  3. xml & asp suppression d'un noeud
    Par totoche dans le forum ASP
    Réponses: 1
    Dernier message: 28/10/2005, 11h41
  4. Suppression de noeud en xml
    Par Qapoka dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/09/2005, 11h39
  5. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24

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