public static void main(String[] args) throws DocumentException,IOException {
String xml = "<aaa>"
+ "<bbb>"
+ "<ccc>c1</ccc>"
+ "<ccc>" + "<ddd><eee>c2</eee></ddd>" + "</ccc>"
+ "<ccc>c3</ccc>"
+ "</bbb>"
+ "</aaa>";
Document document = DocumentHelper.parseText(xml.toString());
Element rootElement = document.getRootElement();
Element elementToAdd = (Element) rootElement.selectSingleNode("//bbb/ccc[2]");
Element bElement = (Element) document.selectSingleNode("//bbb");
List<Element> cList = bElement.elements();
cList.add(2, (Element) elementToAdd.clone());
// XML格式化
StringWriter stringWriter = new StringWriter();
OutputFormat xmlFormat = OutputFormat.createPrettyPrint();// 紧凑格式,无空格换行
xmlFormat.setEncoding("UTF-8");
xmlFormat.setNewlines(true);
xmlFormat.setIndent(true);
xmlFormat.setIndent(" ");
XMLWriter xmlWriter = new XMLWriter(stringWriter, xmlFormat);
xmlWriter.write(document);
xmlWriter.close();
System.out.println(stringWriter.toString());
}
控制台输出如下:
<?xml version="1.0" encoding="UTF-8"?>
<aaa>
<bbb>
<ccc>c1</ccc>
<ccc>
<ddd>
<eee>c2</eee>
</ddd>
</ccc>
<ccc>
<ddd>
<eee>c2</eee>
</ddd>
</ccc>
<ccc>c3</ccc>
</bbb>
</aaa>
可见,c2节点为新增节点。