//TestXML.xml
<?xml version="1.0" encoding="GB2312" ?>
<book>
<title>Java實例一百例</title>
<page id="1">
<title>基礎知識篇</title>
<file>base.htm</file>
</page>
<page id="3">
<title>SWING篇</title>
<file>swing.htm</file>
</page>
<page id="28">
<title>EJB篇</title>
<file>ejb.htm</file>
</page>
<page id="33">
<title>DOM篇</title>
<file>xmldom.htm</file>
</page>
</book>
//TestXML.java
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
public class TestXML {
public static void main(String[] args) {
try {
//創建解析工廠
DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
//指定DocumentBuilder
DocumentBuilder builder = dbfactory.newDocumentBuilder();
//從文件構造一個Document,因為XML文件中已經指定了編碼,所以這里不必了
Document doc = builder.parse(new File("TestXML.xml"));
//得到Document的根(節點名:book)
Element root = doc.getDocumentElement();
System.out.println("根節點標記名:" + root.getTagName());
System.out.println("****下面遍歷XML元素****");
//獲得page元素
NodeList list = root.getElementsByTagName("page");
//遍歷page元素
for (int i=0; i < list.getLength() ; i++) {
//獲得page的元素
Element element = (Element)list.item(i);
//獲得ID屬性
String id = element.getAttribute("id");
//獲得title屬性
NodeList titleList = element.getElementsByTagName("title");
//獲得title元素
Element titleElement = (Element)titleList.item(0);
//獲得title元素的第一個值
String title = titleElement.getFirstChild().getNodeValue();
//獲得file元素名稱
NodeList fileList = element.getElementsByTagName("file");
//獲得file元素
Element fileElement = (Element)fileList.item(0);
//獲得file元素的第一個值
String file = fileElement.getFirstChild().getNodeValue();
System.out.println("ID:" + id + " " +
"標題:" + title + " " +
"文件:" + file);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}