Dom4j的API中并没有提供替换节点或元素的方法,若想使用Dom4j的API来实现,则只能是先删除其中的一个节点,而后再重新添加一个,但这种方法很难保持节点本身的先后顺序。那么,我们应该如何来解决这个问题呢?假设我们要将查到的id为123的oldNode替换为newEl,代码如下:
- oldNode = docHtml.selectSingleNode("//img[@id=123]");
- Element newEl = DocumentHelper.createElement("input");
- List elepar = oldNode.getParent().content();
- elepar.set(elepar.indexOf(oldNode),newEl);