<?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 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;
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;
Document doc = null;
public void getDocument() {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse("scores.xml");
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();
}
// 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()+" ");
}
}
}
}
// 获取节点 标记名
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();
}
Score score=new Score();
score.getDocument();
score.showscore();
}
}
第三题,删除信息,修改信息,添加信息
package xml;
第三题,删除信息,修改信息,添加信息
package xml;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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 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;
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;
Document doc = null;
public void getDocument() {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse("scores.xml");
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();
}
// 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);
// 获取节点 标记名
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 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();//显示
}
Score score=new Score();
score.getDocument();
score.modify();//修改
score.add();//添加
score.delete();//删除
score.conserve();//保存
score.showscore();//显示
}
}
第四题使用DOM4J输出XML的信息
package xml;
第四题使用DOM4J输出XML的信息
package xml;
import java.util.Iterator;
import java.util.List;
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;
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();
}
}
//读取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();
}
}