1.编写XML文档,具体值自行添加,至少添加两个学员的成绩信息,包括学生id,姓名,学科,分数。
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <scores> <student id="10084"> <name:>张三</name:> <course:>JAVA</course:> <score:>89</score:> </student> <student id="10085"> <name:>黄志豪</name:> <course:>JAVA</course:> <score:>25</score:> </student> </scores>
2.使用DOM解析简答题1中编写的XML文档,输出所有学员信息,并进行以下操作:删除ID为1的成绩,修改ID为2的成绩为60,添加一个学生的成绩信息(ID为3)。
package kehouzuoye; 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 DOMTest { DocumentBuilderFactory dbf = null; DocumentBuilder db = null; Document doc = null; /** * 显示学生信息 */ public void show() { dbf = DocumentBuilderFactory.newInstance(); try { db = dbf.newDocumentBuilder(); doc = db.parse("D:\\Users\\yuanwenjian\\eclipse-workspace\\XML\\src\\kehouzuoye\\Student.xml"); NodeList nl = doc.getElementsByTagName("student"); for (int i = 0; i < nl.getLength(); i++) { System.out.println("第" + (i + 1) + "位同学的信息:"); Node nd = nl.item(i); Element el = (Element) nl.item(i); String str = el.getAttribute("id"); System.out.println("id:" + str); NodeList nls = nd.getChildNodes(); for (int j = 0; j < nls.getLength(); j++) { if (nls.item(j).getNodeType() == Node.ELEMENT_NODE) { System.out.println(nls.item(j).getNodeName() + nls.item(j).getFirstChild().getNodeValue()); } } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 保存学生信息 */ public void save() { TransformerFactory tff = TransformerFactory.newInstance(); try { Transformer tfo = tff.newTransformer(); DOMSource ds = new DOMSource(doc); StreamResult sr = new StreamResult(new FileOutputStream("NewStudent.xml")); tfo.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); tfo.transform(ds, sr); } catch (Exception e) { e.printStackTrace(); } } /** * 删除学生信息 */ public void delete() { NodeList li = doc.getElementsByTagName("score:"); Element el = (Element) li.item(0); li.item(0).getParentNode().removeChild(el); save(); } /** * 修改信息 */ public void amend() { NodeList li = doc.getElementsByTagName("score:"); Element el = (Element) li.item(1); el.setTextContent("60"); save(); } /** * 添加信息 */ public void add() { Element el=doc.createElement("student"); el.setAttribute("id", "10086"); Element el2=doc.createElement("name:"); el2.setTextContent("李四"); Element el3 = doc.createElement("course:"); el3.setTextContent("JAVA"); Element el4 = doc.createElement("score:"); el4.setTextContent("78"); el.appendChild(el2); el.appendChild(el3); el.appendChild(el4); Element StuElement = (Element)doc.getElementsByTagName("scores").item(0); StuElement.appendChild(el); save(); } public static void main(String[] args) { DOMTest dom = new DOMTest(); dom.show(); dom.amend(); dom.delete(); dom.add(); } }