在List由返回的getChildren()方法调用是一个java.util.List。对List对象的任何修改都会立即反映在支持文档中。这使对XML文档的操作变得容易。
您还可以查看如何Element通过调用addContent()方法将新的文档添加到文档中。
package org.nhooo.example.jdom; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.SAXBuilder; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.List; public class JDOMAddRemoveElement { public static void main(String[] args) { String xml = "<root>" + " <user name=\"Alice\" age=\"21\" dob=\"20-01-1988\"/>" + " <user name=\"Bob\" age=\"23\" dob=\"01-05-1986\"/>" + "</root>"; SAXBuilder builder = new SAXBuilder(); try { Document document = builder.build( new ByteArrayInputStream(xml.getBytes())); // 使用以下命令将新元素添加到文档的根目录 // addContent方法。 document.getRootElement().addContent( new Element("people").setAttribute("id", "1")); document.getRootElement().addContent( new Element("people").setAttribute("id", "1")); //添加一个新元素。通过向列表中添加一个新元素 //子级,我们可以修改xml文档。使用 // java.util.List进行XML文档的修改 // 简单容易。 List<Element> children = document.getRootElement().getChildren(); children.add(new Element("user") .setAttribute("name", "Carol") .setAttribute("age", "25") .setAttribute("dob", "06-03-1984")); // 将元素添加到xml文档的开头。 children.add(0, new Element("user") .setAttribute("name", "Jimmy") .setAttribute("age", "25") .setAttribute("dob", "16-05-1984")); // 删除第四个元素。 children.remove(3); XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()); outputter.output(document, System.out); } catch (JDOMException | IOException e) { e.printStackTrace(); } } }
此代码的结果是:
<?xml version="1.0" encoding="UTF-8"?> <root> <user name="Jimmy" age="25" dob="16-05-1984" /> <user name="Alice" age="21" dob="20-01-1988" /> <user name="Bob" age="23" dob="01-05-1986" /> <people id="1" /> <user name="Carol" age="25" dob="06-03-1984" /> </root>
Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar --> <dependency> <groupId>org.jdom</groupId> <artifactId>jdom2</artifactId> <version>2.0.6</version> </dependency>