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>
*/
分享到:
相关推荐
使用dom解析XML,演示了如何使用DOM的五个基本对象来解析xml。
用C#编写的XML解析器,DOM和SAX都有实现
java操作xml,包括dom、sax解析
使用dom工具解析xml文件。自写,绝对实用
DOM 解析 基本操作 SAX 解析 基本操作 上学期XML的一个小作业,都是一些基本操作,刚学XML的同学们拿来玩玩
XML_dom4j_解析器 jar包 dom4j-1.6.1.jar ,解析XML文件包
一个小巧的基于 DOM 解析 XML 的免费工具的最新版本,比MarkupSTL更好用
使用DOM解析XML文件 Dom解析是将xml文件全部载入,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件。对于特别大的文档,解析和加载整个文档可能很慢且很耗资源 http://www.iteye.com/topic/763926
使用java语言对XML文档进行解析的示例,包括DOM,SAX方式,并包括使用jdom和jom4j框架进行XML解析或生成XML文档
java dom解析xml <?xml version="1.0" encoding="UTF-8"?> <Head> <FileVersion>010000</FileVersion> <FileLength>00000CC3</FileLength> <FileTime>20100629173405</FileTime> <KeyIndex>1...
Java与XML联合编程之DOM篇 java中通过documentobjectmodule模型来解析xml文件 diamondsong提供
这里面是一个视频介绍如何解析XML文档的几种方法
Java解析XML汇总DOM_SAX_JDOM_DOM4j_XPath 实例
java通过dom解析xml文件的简单例子
这是DOM4J解析XML的代码,包含类,XML文件
用DOM-MSXML实现解析xml文件,可以遍历整个xml文件,并将结果以树的形式显示出来,使xml文件的结构一目了然。
java学习笔记——使用DOM解析XML和使用SAX解析XML
JAVA 使用 dom4j 解析 创建 修改 XML
通过DOM和SAX解析器,对XML文档进行解析。通过文档所在路径,读取xml文档,并显示相应结果
XML_StuGradeExam_domXML解析技术之dom、Sax、dom4j技术演习以及Schema XML文档约束##XML解析开发包Jaxp(sun)Jdomdom4j####ExamExam是一个使用Xml持久化保存数据的xml数据库,该项目是演练dom解析XML技术很好的一个...