我有一个dom对象,如:
<Order OrderNo="123">
<Lines>
<Line LineNo="1">
<Details Quantity="1.0" Code="Apple"/>
</Line>
<Line LineNo="2">
<Details Quantity="1.0" Code="Orange"/>
</Line>
</Lines>
</Order>
我遍历行并在列表中的每一行,如
List<Element> listOfRelatedLines = new ArrayList<Element>();
listOfRelatedLines .add(elOrderLine);
现在我遍历列表并从列表中取出每一行。
for(Element elComponentLine : listOfRelatedComponentLines){
elComponentLine.removeAttribute("Code");
}
这也会从原始Document中删除属性Code。我在哪里错了?我应该怎么做才能保留原始文档中的值。
答案 0 :(得分:1)
将元素放入新数组不会克隆该元素。因此,对该元素的任何更改仍将影响原始元素。您必须在元素上调用cloneNode
才能克隆它。在添加到数组时执行此操作:
listOfRelatedLines.add((Element) elOrderLine.cloneNode(true));