我需要遍历 JDOM 树并进行更改;目前,更改主要是添加新元素,但也可能包括重新排序元素或删除元素。所有工作都在同一个线程上完成,因此不存在并发问题。
事实证明这很困难,因为如果您尝试在遍历期间添加节点,JDOM 迭代器可能会抛出 ConcurrentModificationException。据我所知,JDOM 使用列表而不是直接链接 DOM 节点,这使得动态修改变得困难。
我已经看到了一些关于如何处理这个问题的建议,例如将添加推迟到遍历完成之后,或者动态构建一个新树,以便遍历的树保持不变。这些对我不起作用,因为我在修改树时需要一致的视图。
我开始怀疑 JDOM 在这里行不通。是否有任何其他 Java DOM 模型使这更容易?或者有没有办法在 JDOM 中做到这一点?