package ren;
import org.w3c.dom.*;
import java.io.*;
import javax.xml.parsers.*;
public class TestDOMParser {
public static void main(String[] args) {
TestDOMParser tp = new TestDOMParser();
tp.parseXMLFile("c:\\student.xml");
}
public void parseXMLFile(String fileName) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
//解析文件名传入
Document doc = db.parse(fileName);
//获得Documet,与xml建立对象匹配
//Document doc = parser.getDocument();
//获得根节点StudentInfo
Element elmtInfo = doc.getDocumentElement();
//得到所有student节点,节点集合
NodeList nlStudent = elmtInfo.getElementsByTagName("student");
System.out.println("XML文件开始解析");
//循环输出每一个学生成绩
for (int i = 0; i < nlStudent.getLength(); i++) {
//当前student元素
Element elmtStudent = (Element) nlStudent.item(i);
//Name/sex/lesson节点清单
NodeList nlCurrent = elmtStudent.getElementsByTagName("name");
System.out.println("姓名:"
+ nlCurrent.item(0).getFirstChild().getNodeValue());
nlCurrent = elmtStudent.getElementsByTagName("sex");
System.out.println("性别:"
+ nlCurrent.item(0).getFirstChild().getNodeValue());
//取得Lesson节点,不是一个,需要循环
nlCurrent = elmtStudent.getElementsByTagName("lesson");
for (int j = 0; j < nlCurrent.getLength(); j++) {
//Lesson这个元素的对应
Element elmtLesson = (Element) nlCurrent.item(j);
NodeList nlLesson = elmtLesson
.getElementsByTagName("lessonName");
System.out.print(nlLesson.item(0).getFirstChild()
.getNodeValue());
System.out.print(":");
nlLesson = elmtLesson.getElementsByTagName("lessonScore");
System.out.print(nlLesson.item(0).getFirstChild()
.getNodeValue());
System.out.println();
}
System.out.println("------------------------------------");
}
System.out.println("DOM_XML文件解析结束");
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* <?xml version="1.0" encoding="GB2312"?>
<StudentInfo>
<student>
<name>达内</name>
<sex>男</sex>
<lesson>
<lessonName>Java初级</lessonName>
<lessonScore>85</lessonScore>
</lesson>
<lesson>
<lessonName>Oracle数据库</lessonName>
<lessonScore>95</lessonScore>
</lesson>
<lesson>
<lessonName>Java中级</lessonName>
<lessonScore>80</lessonScore>
</lesson>
<lesson>
<lessonName>Java高级</lessonName>
<lessonScore>100</lessonScore>
</lesson>
</student>
<breakLine/>
<student>
<name>花木兰</name>
<sex>女</sex>
<lesson>
<lessonName>射箭</lessonName>
<lessonScore>100</lessonScore>
</lesson>
<lesson>
<lessonName>柔道</lessonName>
<lessonScore>95</lessonScore>
</lesson>
<lesson>
<lessonName>国学</lessonName>
<lessonScore>80</lessonScore>
</lesson>
<lesson>
<lessonName>烹饪</lessonName>
<lessonScore>60</lessonScore>
</lesson>
<lesson>
<lessonName>游泳</lessonName>
<lessonScore>70</lessonScore>
</lesson>
</student>
<breakLine/>
</StudentInfo>
*/