一、Java中操作DOM中常用的類
Node
資料類型基類
Element
最常用的類
Attr
Element的屬性
Text
Element or Attr的内容
Document
代表整個XML文檔,代表DOM tree
二、xml檔案
冰與火之歌
張三
99
葫蘆娃
99
1993
三、Dom解析XML案例Demo
package com.da.dom;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DomTest {
public static void main(String[] args) {
//建立一個DocumentBuilderFactory對象
DocumentBuilderFactory documentBuilder = DocumentBuilderFactory.newInstance();
try {
//建立DocumentBuilder對象
DocumentBuilder db = documentBuilder.newDocumentBuilder();
//通過DocumentBuilder中的parse方法加載book。xml檔案到目前項目下
Document document = db.parse("books.xml");
//擷取所有book節點的集合
NodeList nodeList = document.getElementsByTagName("book");
//周遊每個book節點
for (int i = 0; i < nodeList.getLength(); i++) {
System.out.println("==========第"+(i+1)+"本==========");
//Node book = nodeList.item(i);
//NamedNodeMap attributes = book.getAttributes();
不知道目前節點下有多少參數屬性值
//for (int j = 0; j < attributes.getLength(); j++) {
//Node item = attributes.item(j);
//System.out.print("擷取屬性名:"+item.getNodeName());
//System.out.println("擷取屬性值:"+item.getNodeValue());
//}
//确切目前參數下有多少參數屬性值
Element element = (Element) nodeList.item(i);
System.out.println("id值:"+element.getAttribute("id"));
//擷取book下面的子節點
NodeList childNodes = nodeList.item(i).getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++) {
if (childNodes.item(j).getNodeType() == Node.ELEMENT_NODE) {
System.out.print(childNodes.item(j).getNodeName()+":");
System.out.println(childNodes.item(j).getTextContent());
};
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}