Se connecter / S'enregistrer
Votre question

[Java - Jdom] Problème de deplacement d'un élément - Indexof donne des positions

Tags :
  • element
  • Programmation
Dernière réponse : dans Programmation
14 Juin 2006 23:24:07

Bonjour tout le monde.

J'ai un soucis en Java avec le JDom. Mon soucis viens avec les methodes addContent() pour l'ajout d'un élément et indexOf() pour recuperer la position d'un élément.

Les valeurs des positions de chaque éléments retourné par la méthode indexOf() sont dans l'ordre : 1 , 3, 5, 7, 9, 11,.........

Jusque la tout va bien. Mais mon problème apparait lorsque je souhaite déplacer d'un cran vers le haut mon élément. J'affectue un remove() de l'élément, que j'ai cloner juste avant puis je fais addContent(position, leClone);. L'élément est bien déplacé au bonne endroit mais au bout d'un certain nombre de déplacement, des decalages se créé.

En fait, lorsque je déplace un élément vers le haut, par exemple du 5 au 3, eh bien apres lorsque je regarde la nouvelle position, j'obtiens : 1, 3, 4, 6.... au lieu de 1, 3, 5, 7...

Les déplacements sont au final mal effectué puisque le calcul de la position a été mal faites, car la logique des positions a changé.

Sauriez-vous pour quel raison, j'ai ce problème ?

Merci a tous.
A+
Cbil

Autres pages sur : java jdom probleme deplacement element indexof donne positions

a b L Programmation
15 Juin 2006 13:15:39

N'y a-t-il pas un problème avec les DOMNode qui ne seraient pas des DOMElement ?
Peut-être que tu fais un truc incohérent et qu'il déplace l'élément à un endroit plus correct (je dis ça mais j'en sais rien lol).
15 Juin 2006 17:03:36

Merci pour la réponse.
Je n'utilise que Element de JDom, jamais de Node dans mon programme.

En fait, je pense que le problème vient des modifications qui sont mal prise en compte. Une fois le déplacement effectué, j'enregistre sur fichier mais je recharge pas le xml.

Pour l'instant, j'ai pu contourner le problème en recreeant l'objet pour rafraichir les données complètement.

classeXML xml = new classeXML("fichier.xml");
//déplacement
xml.enregistrement
xml = new classeXML("fichier.xml");

L'ancien objet de la classeXML est-elle supprimé théoriquement ou faut-il faire appel à une methode ?

Merci

a+
Cbil

a b L Programmation
15 Juin 2006 18:56:13

si l'ancien objet "xml" n'est référé nulle part, alors il part dans le garbage collector. Donc, tu peux le considéré comme supprimé.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS