Dom4j在某节点上添加已有的Element节点

需求:有两个xml文件需要解析,将A文件的节点解析之后放到了一个List<Element> list的集合中了,然后解析B文件,将list的内容填充到B中去。

众所周知,下面这段代码是可以添加一个节点元素的。

SAXReader reader = new SAXReader();
Document doc = reader.read(new File("C:\Users\86158\Desktop\tmp.xml"));
Element root = doc.getRootElement();
//添加一个节点,节点名字叫el
Element el = root.addElement("el");

但是我这里不需要新建Element对象了,我有现成的Element对象,我又找了一下方法,果然找到了这个适合的,如下图。

正准备收工的时候,报了如下的错。原来Element对象中,还有一个属性对象设置的是父节点信息,那么我们在添加这个元素之前,需要把父节点信息先设置为null,然后才可以添加。

org.dom4j.IllegalAddException: The node "org.dom4j.tree.DefaultElement@4b002002 [Element: <Alarm attributes: [org.dom4j.tree.DefaultAttribute@6688c683 [Attribute: name alarmId value "ET1029_PC10072_SP0"], org.dom4j.tree.DefaultAttribute@3cf84cda [Attribute: name severity value "Major"], org.dom4j.tree.DefaultAttribute@34d21c83 [Attribute: name category value "environment"], org.dom4j.tree.DefaultAttribute@2986444e [Attribute: name isADAC value "false"], org.dom4j.tree.DefaultAttribute@99a3323 [Attribute: name isISA value "false"]]/>]" could not be added to the element "neType" because: The Node already has an existing parent of "neType"
	at org.dom4j.tree.AbstractElement.addNode(AbstractElement.java:1521)
	at org.dom4j.tree.AbstractElement.add(AbstractElement.java:1002)
	at com.genew.nms.cloud.nmstopo.controller.xmlTransportController.lambda$null$1(xmlTransportController.java:101)
	at java.lang.Iterable.forEach(Iterable.java:75)

 最终代码如下,正常添加完成,大功告成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

却诚Salong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值