import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Iterator; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; public class JDOMparseExample1 ... { public static void main(String[] args) throws IOException,FileNotFoundException,JDOMException ...{ //SAXBuilder使用一个第三方的SAX解析器,可以从不同的输入源来构造JDOM文档对象 SAXBuilder builder=new SAXBuilder(); Document doc=builder.build(new FileInputStream("student.xml")); //getRootElement()用于返回文档的根元素. Element element=doc.getRootElement(); //Element类中定义了获取子元素的方法,得到所有子元素 List list=element.getChildren(); //iterator()方法返回以正确顺序在列表的元素上进行迭代的迭代器 //hasNext()方法判断如果仍有元素可以迭代,则返回 true for(Iterator i=list.iterator();i.hasNext();)...{ //next()方法返回迭代的下一个元素。重复调用此方法直到hasNext()方法返回 false, //这将精确地一次性返回迭代器指向的集合中的所有元素 Element current=(Element)i.next(); //判断姓名子元素的值是否为张三 if(current.getChildText("姓名").equals("张三"))...{ //删除年龄子元素 current.removeChild("年龄"); //创建年龄子元素 Element age=new Element("年龄"); //设置年龄子元素的值 age.setText("23"); //将年龄子元素添加到父元素中 current.addContent(age); } //判断姓名子元素的值是否为李四 if(current.getChildText("姓名").equals("李四"))...{ //删除年龄子元素 current.removeChild("年龄"); //创建年龄子元素 Element age=new Element("年龄"); //设置年龄子元素的值 age.setText("25"); //将年龄子元素添加到父元素中 current.addContent(age); } } Format format=Format.getCompactFormat(); //设置文档字符编码 format.setEncoding("GB18030"); //设置缩进字符串 format.setIndent(" "); //XMLOutputter类提供了将JDOM树输出为字节流的能力 XMLOutputter XMLOut=new XMLOutputter(format); //输出到文件 XMLOut.output(doc,new FileOutputStream("student.xml")); System.out.println("执行成功"); }} 以下是XML文档内容: <? xml version="1.0" encoding="GB18030" ?> < 学生花名册 > < 学生 性别="男" > < 姓名 > 李四 </ 姓名 > < 电话 > 6287555 </ 电话 > < 年龄 > 25 </ 年龄 > </ 学生 > < 学生 性别="男" > < 姓名 > 张三 </ 姓名 > < 电话 > 8273425 </ 电话 > < 年龄 > 23 </ 年龄 > </ 学生 > </ 学生花名册 >