📄 testdomparser.java
字号:
import org.w3c.dom.*;
import java.io.*;
import java.util.*;
import javax.xml.parsers.*;
//需要下载xercesImpl.jar,才能提供
public class TestDOMParser {
public static void main(String[] args) {
TestDOMParser tp = new TestDOMParser();
tp.parseXMLFile("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("XML文件解析结束");
}
catch (IOException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -