Je dois parcourir un arbre JDOM et apporter des modifications au fur et à mesure; À ce stade, les modifications consistent principalement à ajouter de nouveaux éléments dès maintenant, mais pourraient également inclure des éléments de réorganisation ou de suppression d'éléments. Tout le travail est effectué sur le même thread, donc il n'y a pas de problèmes de concurrence.Problèmes de réécriture de l'arborescence XML/DOM à l'aide de JDOM (ConcurrentModificationException)
Cela s'avère difficile car les itérateurs JDOM peuvent lancer une exception ConcurrentModificationException si vous essayez d'ajouter un nœud pendant la traversée. D'après ce que je peux voir, JDOM utilise des listes au lieu de relier directement les nœuds DOM, ce qui rend difficile les modifications à la volée.
J'ai vu quelques recommandations sur la façon de gérer cela, comme reporter les ajouts jusqu'à la fin de la traversée, ou construire un nouvel arbre à la volée pour que l'arbre traversé reste inchangé. Ceux-ci ne fonctionneront pas pour moi parce que j'ai besoin d'une vue cohérente de l'arbre pendant que je le modifie. Je commence à soupçonner que JDOM ne fonctionnera pas ici. Est-ce que l'un des autres modèles Java DOM facilite cela? Ou y a-t-il un moyen de le faire dans JDOM?
Ne pensez pas que cela fonctionnera bien. Je fournis la possibilité de définir des transformations à chaque nœud et le modèle de script permet d'examiner le reste de l'arbre pendant la transformation. Tout type de mise à jour différée signifie que le scripteur doit gérer cela. – jdigital
Quelle technique suggéreriez-vous pour décorer un nœud JDOM (Element)? – jdigital