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