一、建立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
二、建立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