一。原本的xml类似这个样的
<?xml version="1.0" encoding="UTF-8"?>
-<students> -<student id="1"> <name>王通</name> <subject>java</subject> <score>89</score> </student> -<student id="2"> <name>李佳</name> <subject>sql</subject> <score>58</score> </student>
二。输出显示在控制台上 需要导入dom4j包
import java.io.File;
import java.util.List;
import org.dom4j.Document;//注意导的包不要导错了。!!!
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Test4 {
public static void main(String[] args) {
try {
SAXReader reader=new SAXReader();
Document document=reader.read(new File("src/Student.xml"));
Element root=document.getRootElement();//得到根节点
List<Element>elementlistList=root.elements("student");//root.elements()是数组类型的
//遍历集合使用相关节点
for (Element stuElement:elementlistList ) {
//获得元素的属性
String idString=stuElement.attributeValue("id");
//获取元素的字元素的文本值
String name=stuElement.elementText("name");
String subject=stuElement.elementText("subject");
String score=stuElement.elementText("score");
System.out.printf("学生的id是:%S,学生的姓名是:%S,学会生的课程是:%S,学生的分数是:%S",idString, name,subject,score);
System.out.println( );
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
三 。新增信息导xml。本题先创建了一个学生类
public class Student {
int id;
String name;
String subject;
int score;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public Student(int id, String name, String subject, int score) {
super();
this.id = id;
this.name = name;
this.subject = subject;
this.score = score;
}
}
下面是信息录入程序
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class AddElement {
public static void main(String[] args) {
try {
Student stu = new Student(3, "张三", "php", 99);
// 创建saxReady对象
SAXReader reader = new SAXReader();
// 通过read方法读取一个文件,转换成Doucement对象
Document document = reader.read(new File("src/Student.xml"));
// 获得根节点元素,目标元素为Students
Element rootElement = document.getRootElement();
// 添加一个student节点到students中
Element student = rootElement.addElement("student");// 属性值赋值有点变态哦
student.addAttribute("id", stu.getId() + "");// 这里的参数类型是String的,如果student类中不定义Integer类型的
// 为studnet增加name,subject,score的子元素
Element name = student.addElement("name");// 增加一个name元素
name.setText(stu.getName());// 为name元素赋文本值 ,为student的name
Element subject = student.addElement("subject");
subject.setText(stu.subject);
Element score = student.addElement("score");
score.setText(stu.score + "");
// 将编辑好的Document对象写回scores.xml文件
OutputFormat format = OutputFormat.createPrettyPrint();
// 设置编码集
format.setEncoding("UTF-8");
// 创建XMLWriter高级流
XMLWriter write = new XMLWriter(new FileWriter("src/Student.xml"), format);
write.write(document);
write.flush();
write.close();
System.out.println("编辑完成!");
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}