第六章 XML习题

1.

<?xml version="1.0" encoding="UTF-8" standalone="no"?><scores>

<student id="1">
<name>张三</name>
<course>Java</course>
<score>95</score>
</student>
<student id="2">
<name>李四</name>
<course>SQL</course>
<score>94</score>
</student>
<student id="3">
<name>王五</name>
<course>C#</course>
<score>92</score>
</student>

</scores>




2.

package Demo3;


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;


import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;


public class Test {
Document document = null;


public void getDocument() {
DocumentBuilderFactory db = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = db.newDocumentBuilder();
document = builder.parse("src\\Demo3\\NewFile4.xml");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


public void show() {
NodeList list = document.getElementsByTagName("student");
for (int i = 0; i < list.getLength(); i++) {
Node student = list.item(i);
Element element = (Element) student;
String num = element.getAttribute("id");
System.out.println("编号为:" + num);
NodeList sx = student.getChildNodes();
String name = null;
String course = null;
String score = null;
for (int j = 0; j < sx.getLength(); j++) {
Node node = sx.item(j);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element2 = (Element) node;
if (element2.getTagName().equals("name")) {
name = element2.getTextContent();
}
if (element2.getTagName().equals("course")) {
course = element2.getTextContent();
}
if (element2.getTagName().equals("score")) {
score = element2.getTextContent();
}
}
}
System.out.println("姓名:" + name + ",学科:" + course + ",分数:" + score);
}
}


public static void main(String[] args) {
Test test = new Test();
test.getDocument();
test.show();


}
}




3.

package Demo3;


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 Test2 {
Document document = null;


public void getDocument() {
DocumentBuilderFactory db = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = db.newDocumentBuilder();
document = builder.parse("src\\Demo3\\NewFile4.xml");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


public void show() {
NodeList list = document.getElementsByTagName("student");
for (int i = 0; i < list.getLength(); i++) {
Node student = list.item(i);
Element element = (Element) student;
String num = element.getAttribute("id");
System.out.println("编号为:" + num);
NodeList sx = student.getChildNodes();
String name = null;
String course = null;
String score = null;
for (int j = 0; j < sx.getLength(); j++) {
Node node = sx.item(j);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element2 = (Element) node;
if (element2.getTagName().equals("name")) {
name = element2.getTextContent();
}
if (element2.getTagName().equals("course")) {
course = element2.getTextContent();
}
if (element2.getTagName().equals("score")) {
score = element2.getTextContent();
}
}
}
System.out.println("姓名:" + name + ",学科:" + course + ",分数:" + score);
}
}


public void del() {
NodeList list = document.getElementsByTagName("student");
for (int i = 0; i < list.getLength(); i++) {
Element element = (Element) list.item(i);
String delName = element.getAttribute("id");
if (delName.equals("1")) {
element.removeChild(element.getElementsByTagName("score").item(0));
}


}
}


public void change() {


try {


// 找到修改的节点
NodeList list = document.getElementsByTagName("student");
for (int i = 0; i < list.getLength(); i++) {
Element element = (Element) list.item(i);
String changeName = element.getAttribute("id");
if (changeName.equals("2")) {  
if(element.getTagName().equals("score")) {
element.setTextContent("60");
}
// 修改属性
}
}
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public void save() {
// 创建一个转换的工厂
TransformerFactory factory = TransformerFactory.newInstance();
try {
// 创建装换器
Transformer transformer = factory.newTransformer();
// 要搬的东西
DOMSource domSource = new DOMSource(document);
// 搬到具体的地方
StreamResult result = new StreamResult(new FileOutputStream("src\\Demo3\\NewFile4.xml"));
// 搬东西的时候要遵循某种规则去搬
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
// 真正的开始搬东西
transformer.transform(domSource, result);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void add() {
Element element = document.createElement("student");
element.setAttribute("id", "3");
Element name = document.createElement("name");
name.setTextContent("王五");
Element course = document.createElement("course");
course.setTextContent("C#");
Element score = document.createElement("score");
score.setTextContent("92");

element.appendChild(name);
element.appendChild(course);
element.appendChild(score);
Element    element2  =(Element) document.getElementsByTagName("scores").item(0);
       element2.appendChild(element);




}


public static void main(String[] args) {
Test2 test2 = new Test2();
test2.getDocument();
test2.del();
test2.change();
test2.add();
test2.save();
test2.show();


}

}



4.


package Demo3;


import java.util.Iterator;


import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class Test3 {


Document document = null;


public void load() {
SAXReader reader = new SAXReader();
try {
document = reader.read("src\\Demo3\\NewFile4.xml");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}


public void show() {
Element element = document.getRootElement();
for (Iterator itscore = element.elementIterator(); itscore.hasNext();) {
Element score = (Element) itscore.next();
String value = score.elementText("score");
System.out.println("成绩:" + value);

}
}


public static void main(String[] args) {
Test3 test3 = new Test3();
test3.load();
test3.show();
}
}

猜你喜欢

转载自blog.csdn.net/wsbbdbjay/article/details/80513704