<?xml version="1.0" encoding="UTF-8"?>
<list>
<Student><name>王小明</name><en>50</en><ch>90</ch><math>80</math></Student>
<Student><name>陳小東</name><en>67</en><ch>70</ch><math>90</math></Student></list>
程式碼如下:
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.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
static class Student{
private String name;
private int ch;
private int en;
private int math;
public Student(String name, int ch, int en, int math){
this.name=name;
this.ch=ch;
this.en=en;
this.math=math;
}
}
public static void main(String []args) throws JDOMException, IOException {
write();
read();
}
static void write() throws IOException {
Map<Integer, Student> map = new HashMap<Integer, Student>();
map.put(1, new Student("王小明", 90,50,80));
map.put(2, new Student("陳小東", 70,67,90));
Element root = new Element("list");
Document document = new Document(root);
for(Student student: map.values()){
Element nameElement = new Element("name");
nameElement.setText(student.name);
Element chElement = new Element("ch");
chElement.setText(String.valueOf( student.ch));
Element enElement = new Element("en");
enElement.setText(String.valueOf(student.en));
Element mathElement = new Element("math");
mathElement.setText(String.valueOf( student.math));
Element stduentElement = new Element("Student");
stduentElement
.addContent(nameElement)
.addContent(enElement)
.addContent(chElement)
.addContent(mathElement);
document.getRootElement().addContent(stduentElement);
}
String path = Test.class.getClassLoader().getResource("").getPath();
File file = new File(String.format("%s/%s", path, "test.xml"));
file.createNewFile();
OutputStream stream = new FileOutputStream(file.getPath());
XMLOutputter xmlOutputter = new XMLOutputter(Format.getCompactFormat());
xmlOutputter.output(document, stream);
stream.flush();
stream.close();
stream=null;
file=null;
xmlOutputter=null;
}
static void read() throws JDOMException, IOException {
SAXBuilder builder = new SAXBuilder();
Document rootDocument= builder.build(Test.class.getClassLoader().getResource("test.xml"));
Element rootElement = rootDocument.getRootElement();
List<Element> elementList = rootElement.getChildren("Student");
for (Element element: elementList){
String name = element.getChild("name").getValue();
int ch =Integer.parseInt( element.getChild("ch").getValue());
int math = Integer.parseInt(element.getChild("math").getValue());
int en = Integer.parseInt(element.getChild("en").getValue());
System.out.printf("Name: %s Ch %d math %d en %d\n", name,ch,math,en);
}
}
}
執行結果: