首次接触XML
准备:在E盘下新建一个.xml文件test.xml
下载jdom-2.0.3.jar文件,放入项目lib目录下,并加入buildpath
View Code
1 package com.slh.common; 2 3 import java.io.File; 4 import java.io.FileWriter; 5 import java.util.Iterator; 6 7 import org.jdom2.Document; 8 import org.jdom2.Element; 9 import org.jdom2.input.SAXBuilder; 10 import org.jdom2.output.Format; 11 import org.jdom2.output.XMLOutputter; 12 13 public class TestXML { 14 private File studentListFile; 15 private Document doc; 16 private Element rootElement; 17 private final static XMLOutputter fmt = new XMLOutputter( 18 Format.getPrettyFormat()); 19 20 public TestXML() throws Exception { 21 init(); 22 } 23 24 private void init() throws Exception { 25 SAXBuilder builder = new SAXBuilder(); 26 studentListFile = new File("e:\\test.xml"); 27 doc = builder.build(studentListFile); 28 rootElement = doc.getRootElement(); 29 System.out.println("rootElement:" + rootElement.getName()); 30 } 31 32 public StringBuffer getStudentList() { 33 StringBuffer students = new StringBuffer(); 34 String id, name, age, job, sex, student; 35 36 for (Iterator<Element> it = rootElement.getChildren().iterator(); it.hasNext();) { 37 Element child = it.next(); 38 Element idElement = child.getChild("id"); 39 Element nameElement = child.getChild("name"); 40 Element ageElement = child.getChild("age"); 41 Element jobElement = child.getChild("job"); 42 Element sexElement = child.getChild("sex"); 43 44 id = idElement.getText(); 45 name = nameElement.getText(); 46 age = ageElement.getText(); 47 job = jobElement.getText(); 48 sex = sexElement.getText(); 49 50 student = " " + child.getName() + ":" + id + " " + name + " " + age + " " 51 + job + " " + sex + "\n"; 52 students.append(student); 53 } 54 55 return students; 56 } 57 58 public void addStudent(int id, String name, int age, String job, String sex) 59 throws Exception { 60 Element subElement1 = new Element("student"); 61 Element idElement = new Element("id"); 62 Element nameElement = new Element("name"); 63 Element ageElement = new Element("age"); 64 Element jobElement = new Element("job"); 65 Element sexElement = new Element("sex"); 66 67 subElement1.addContent(idElement); 68 subElement1.addContent(nameElement); 69 subElement1.addContent(ageElement); 70 subElement1.addContent(jobElement); 71 subElement1.addContent(sexElement); 72 73 idElement.setText(Integer.valueOf(id).toString()); 74 nameElement.setText(name); 75 ageElement.setText(Integer.valueOf(age).toString()); 76 jobElement.setText(job); 77 sexElement.setText(sex); 78 79 rootElement.addContent(subElement1); 80 fmt.output(doc, new FileWriter(studentListFile)); 81 } 82 83 public void delStudent(int id) throws Exception { 84 for (Iterator<Element> it = rootElement.getChildren().iterator(); it.hasNext();) { 85 Element child = it.next(); 86 String idElement = child.getChild("id").getText(); 87 if (idElement.equals(Integer.valueOf(id).toString())) { 88 it.remove(); 89 } 90 } 91 fmt.output(doc, new FileWriter(studentListFile)); 92 } 93 94 public void updateStudent(int id, String name, int age, String job, String sex) 95 throws Exception { 96 for (Iterator<Element> it = rootElement.getChildren().iterator(); it.hasNext();) { 97 Element child = it.next(); 98 String idElement = child.getChild("id").getText(); 99 System.out.println(idElement); 100 if (idElement.equals(Integer.valueOf(id).toString())) { 101 child.getChild("name").setText(name); 102 child.getChild("age").setText(Integer.valueOf(age).toString()); 103 child.getChild("job").setText(job); 104 child.getChild("sex").setText(sex); 105 break; 106 } 107 } 108 fmt.output(doc, new FileWriter(studentListFile)); 109 } 110 111 public static void main(String[] args) throws Exception { 112 TestXML testXML = new TestXML(); 113 // System.out.println(testXML.getStudentList()); 114 // testXML.addStudent(4, "slh4", 33, "waiter", "f"); 115 // System.out.println(testXML.getStudentList()); 116 // testXML.delStudent(4); 117 // System.out.println(testXML.getStudentList()); 118 // testXML.updateStudent(4, "slh44", 33, "actor", "f"); 119 System.out.println(testXML.getStudentList()); 120 } 121 }