您的位置:首页 > 编程语言 > Java开发

使用DOM解析XML文档

2016-08-06 11:05 351 查看
1、创建XML文档

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

<Students>
<student stuno="1001">
<name>张三</name>
<gender>男</gender>
<scores>100</scores>
</student>
<student stuno="1002">
<name>李四</name>
<gender>男</gender>
<scores>99</scores>
</student>
<student stuno="1003">
<name>王五</name>
<gender>女</gender>
<scores>98</scores>
</student>
</Students>
XML文档浏览如下:




2、创建Java程序读取XML文档内容,并输出内容。
package study20160806;

import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DOMXMLDemo {

public static void main(String[] args) {
//		1、创建解析器工厂
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
//		    2、由计解析器工厂对象创建解析器对象
DocumentBuilder db = dbf.newDocumentBuilder();
//			3、由通过解析器对象构建DOM树
org.w3c.dom.Document doc = db.parse("D:/eclipse/eclipse-jee-neon-R-win32/workspace/study/src/study20160806/NewFile.xml");
//			4、通过getElementByTagName获取所有student节点的集合
NodeList students = doc.getElementsByTagName("student");
//			5、通过student的getLength()获得节点数,并循环取出每个节点内容
for(int i = 0; i < students.getLength(); i ++){
//				6、通过item方法获取每一个student节点,并将其转换为Element元素
Element student=(Element)students.item(i);
//				7、通过getAttribute方法获取得到相应的节点属性内容
String stuno = student.getAttribute("stuno");
//				8、通过getElementByTagName获取节点属性
String name = student.getElementsByTagName("name").item(0).getTextContent();
String gender = student.getElementsByTagName("gender").item(0).getTextContent();
String scores = student.getElementsByTagName("scores").item(0).getTextContent();
System.out.println("学生编号:"+stuno+"; 学生姓名:"+name+"; 性别:"+gender+"; 分数:"+scores);
}

} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}
3、输出结果
学生编号:1001; 学生姓名:张三; 性别:男; 分数:100
学生编号:1002; 学生姓名:李四; 性别:男; 分数:99
学生编号:1003; 学生姓名:王五; 性别:女; 分数:98
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 程序 package