使用DOM解析XML文檔

一、建立XML文檔
java

<?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文檔瀏覽以下:dom

wKiom1elU2XQpzhBAABN4vZtc00739.png-wh_50


二、建立Java程序讀取XML文檔內容,並輸出內容。eclipse

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) {
//		一、建立解析器工廠
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		try {
//		    二、由計解析器工廠對象建立解析器對象
			DocumentBuilder db = dbf.newDocumentBuilder();
//			三、由經過解析器對象構建DOM樹
			org.w3c.dom.Document doc = db.parse("D:/eclipse/eclipse-jee-neon-R-win32/workspace/study/src/study20160806/NewFile.xml");
//			四、經過getElementByTagName獲取全部student節點的集合
			NodeList students = doc.getElementsByTagName("student"); 
//			五、經過student的getLength()得到節點數,並循環取出每一個節點內容
			for(int i = 0; i < students.getLength(); i ++){
//				六、經過item方法獲取每個student節點,並將其轉換爲Element元素
				Element student=(Element)students.item(i);
//				七、經過getAttribute方法獲取獲得相應的節點屬性內容
				String stuno = student.getAttribute("stuno");
//				八、經過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();
		} 

	}

}

三、輸出結果ide

學生編號:1001; 學生姓名:張三; 性別:男; 分數:100ui

學生編號:1002; 學生姓名:李四; 性別:男; 分數:99spa

學生編號:1003; 學生姓名:王五; 性別:女; 分數:98xml

相關文章
相關標籤/搜索