JAVA高级特性与实战项目第六章XML课后作业 第一题编写XML结构的学员信息 <?xml version="1.0" encoding="UTF-8"?> <Scores> <student id ="1"> <name>张三 </name> <coures>JAVA</coures> <score>99</score> </student> <student id ="2"> <name>李四 </name> <coures>C#</coures> <score>60</score> </student> <student id ="3"> <name>赵六 </name> <coures>SQL</coures> <score>80</score> </student> </Scores> 第二题,输出第一题的信息 package xml; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class Score { Document doc = null; public void getDocument() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); doc = db.parse("scores.xml"); } catch (ParserConfigurationException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (SAXException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } public void showscore() { // 获取节点 标记名 NodeList stulist = doc.getElementsByTagName("student"); for (int i = 0; i < stulist.getLength(); i++) { Node student = stulist.item(i); System.out.println("第"+(i+1)+"个学生\n"); NamedNodeMap num= student.getAttributes();//获取属性 for (int j = 0; j < num.getLength(); j++) { Node Name = num.item(j); System.out.println(Name.getNodeName() + ":" + Name.getNodeValue() + " "); } NodeList sco = student.getChildNodes();//获取子节点 for (int k = 0; k < sco.getLength(); k++) { Node scor= sco.item(k); if (scor.getNodeType()==Node.ELEMENT_NODE) { System.out.println(scor.getNodeName()+":"+scor.getTextContent()+" "); } } } } public static void main(String[] args) { Score score=new Score(); score.getDocument(); score.showscore(); } } 第三题,删除信息,修改信息,添加信息 package xml; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Text; import org.xml.sax.SAXException; public class Score { Document doc = null; public void getDocument() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); doc = db.parse("scores.xml"); } catch (ParserConfigurationException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (SAXException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } public void showscore() { // 获取节点 标记名 NodeList stulist = doc.getElementsByTagName("student"); for (int i = 0; i < stulist.getLength(); i++) { Node student = stulist.item(i); System.out.println("第"+(i+1)+"个学生"); System.out.println(); NamedNodeMap num= student.getAttributes();//获取属性 for (int j = 0; j < num.getLength(); j++) { Node Name = num.item(j); System.out.println(Name.getNodeName() + ":" + Name.getNodeValue() + " "); } NodeList sco = student.getChildNodes();//获取子节点 for (int k = 0; k < sco.getLength(); k++) { Node scor= sco.item(k); if (scor.getNodeType()==Node.ELEMENT_NODE) { System.out.println(scor.getNodeName()+":"+scor.getTextContent()+" "); } } System.out.println(); } } //删除信息 public void delete() { NodeList stulist = doc.getElementsByTagName("student"); for (int i = 0; i < stulist.getLength(); i++) { Element stu = (Element) stulist.item(i); String den= stu.getAttribute("id"); if (den.equals("1")) { stu.getParentNode().removeChild(stu); } } } //修改信息 public void modify() { NodeList list= doc.getElementsByTagName("student"); for (int i = 0; i < list.getLength(); i++) { Element score = (Element) list.item(i); String sco = score.getAttribute("score"); if (sco.equals("60")) { score.setAttribute("score", "100"); } } } //添加信息 public void add() { Element element= doc.createElement("student"); Element names= doc.createElement("name"); Element cou= doc.createElement("coures"); Element sco= doc.createElement("score"); //元素节点 Attr att=doc.createAttribute("id"); att.setValue("4"); //文本节点 Text textname=doc.createTextNode("王五"); Text textcoure =doc.createTextNode("JAVA"); Text textscore = doc.createTextNode("100"); //将文本节点添加到元素的子节点 names.appendChild(textname); cou.appendChild(textcoure); sco.appendChild(textscore); //将元素的子节点添加到student element.appendChild(names); element.appendChild(cou); element.appendChild(sco); element.setAttributeNode(att); //得到根元素 Element men=doc.getDocumentElement(); men.appendChild(element); } //保存信息 public void conserve() { TransformerFactory transformerFactory = TransformerFactory.newInstance(); try { Transformer transformer = transformerFactory.newTransformer(); DOMSource dom = new DOMSource(doc); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); StreamResult result=new StreamResult(new FileOutputStream("newscores.xml")); transformer.transform(dom, result); } catch (TransformerConfigurationException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (TransformerException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } public static void main(String[] args) { Score score=new Score(); score.getDocument(); score.modify();//修改 score.add();//添加 score.delete();//删除 score.conserve();//保存 score.showscore();//显示 } } 第四题使用DOM4J输出XML的信息 package xml; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4jstuden { public void show() { try { //读取XML文件,获得Document对象 SAXReader reader= new SAXReader(); Document doc=reader.read("scores.xml"); //获取文档根元素 Element stu= doc.getRootElement(); //迭代元素节点 Iterator itertor = stu.elementIterator(); while (itertor.hasNext()) { // Element pepo = (Element) itertor.next(); List<Attribute> syuatt= pepo.attributes(); for (Attribute attribute : syuatt) { System.out.println(attribute.getName()+":"+attribute.getValue()); }//迭代子节点 Iterator tyep= pepo.elementIterator(); while (tyep.hasNext()) { Element info = (Element) tyep.next(); System.out.println(info.getName()+":"+info.getStringValue()); } } } catch (DocumentException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } public static void main(String[] args) { Dom4jstuden dom4jstuden=new Dom4jstuden(); dom4jstuden.show(); } }
JAVA高级特性与实战项目第六章XML课后作业
猜你喜欢
转载自blog.csdn.net/tb19930719/article/details/80498702
今日推荐
周排行