1,编写XML文档,添加两个学员的成绩,包括学生id,姓名,分数,学科。
<?xml version="1.0" encoding="UTF-8"?> <scores> <student id="1"> <name>郭振</name> <course>JAVA</course> <score>60</score> </student> <student id="2"> <name>段海峰</name> <course>JAVA</course> <score>78</score> </student> </scores>
2,使用DOM解析第一题编写的XML文档,输出所有学员信息。
package com.bdqn.demo; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class Student { public static void main(String[] args) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document doc =builder.parse("学员信息.xml"); NodeList list = doc.getElementsByTagName("student"); for (int i = 0; i < list.getLength(); i++) { Node stu = list.item(i); Element element = (Element) stu; String num = element.getAttribute("id"); System.out.println("编号:"+num); NodeList listName = element.getElementsByTagName("name"); NodeList listCourse = element.getElementsByTagName("course"); NodeList listScore = element.getElementsByTagName("score"); for (int j = 0; j < listScore.getLength(); j++) { Element childName = (Element) listName.item(j); Element childCourse = (Element) listCourse.item(j); Element childScore = (Element) listScore.item(j); String name = childName.getFirstChild().getNodeValue(); String course = childCourse.getFirstChild().getNodeValue(); String score = childScore.getFirstChild().getNodeValue(); System.out.println("姓名:"+name+"\n课程:"+course+"\n分数:"+score+"\n"); } } } catch (Exception e) { e.printStackTrace(); } } }
3,使用DOM对简答题1保存成绩信息的XML删除ID为1的成绩,修改ID为2的成绩为60.添加一个学生的成绩
package com.bdqn.demo; import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Student{ Document doc = null; public static void main(String[] args) { Student stu = new Student(); stu.load(); stu.delete(); stu.change(); stu.save(); stu.add(); stu.save(); } public void load() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); doc = db.parse("学员信息.xml"); } catch (Exception e) { e.printStackTrace(); } } public void delete() { NodeList list = doc.getElementsByTagName("student"); for (int i = 0; i < list.getLength(); i++) { Node stu = list.item(i); Element element = (Element) stu; String str = element.getAttribute("id"); if (str.equals("1")) { element.getParentNode().removeChild(element); } } } public void save() { TransformerFactory tff = TransformerFactory.newInstance(); try { Transformer tf = tff.newTransformer(); DOMSource doms = new DOMSource(doc); tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); StreamResult result = new StreamResult(new FileOutputStream("学员信息.xml")); tf.transform(doms, result); } catch (Exception e) { e.printStackTrace(); } } public void change() { NodeList nl = doc.getElementsByTagName("student"); for (int i = 0; i < nl.getLength(); i++) { Node stu = nl.item(i); Element element = (Element) stu; String str = element.getAttribute("id"); if (str.equals("2")) { NodeList listScore = element.getElementsByTagName("score"); Element getScore = (Element) listScore.item(0); getScore.setTextContent("60分"); } } } public void add() { Element name = doc.createElement("name"); name.setTextContent("黄志豪"); Element course = doc.createElement("course"); course.setTextContent("JAVA"); Element score = doc.createElement("score"); score.setTextContent("59分"); Element student = doc.createElement("student"); student.setAttribute("id", "3"); student.appendChild(name); student.appendChild(course); student.appendChild(score); Element sorces = (Element) doc.getElementsByTagName("sorces").item(0); sorces.appendChild(student); } }4,使用DOM4J解析简答题1描述成绩信息的XML,输出成绩信息。
import java.util.Iterator; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class DOM4JScore { public static void main(String[] args) { SAXReader reader = new SAXReader(); Document doc = null; try { doc = reader.read("Scores.xml"); Element root = doc.getRootElement(); for (Iterator iterator = root.elementIterator(); iterator.hasNext();) { Element element = (Element) iterator.next(); String score = element.elementText("score"); System.out.println(score); } } catch (Exception e) { e.printStackTrace(); } } }