六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

Java+XML學(xué)習(xí)Step by step(一)

[摘要]Belltree 發(fā)表于 2001-10-25 09:08 XML學(xué)習(xí) ←返回版面 啊,各位兄弟,找了幾個jaxp和xerces的例子,做了一些注釋,希望對大家的學(xué)習(xí)有幫助,下面這個例子是jaxp包中帶的例子:CountDom.java,這個例子要點有:如何得到一個Document對象,以及對節(jié)點...
 Belltree 發(fā)表于 2001-10-25 09:08 XML學(xué)習(xí) ←返回版面 

啊,各位兄弟,找了幾個jaxp和xerces的例子,做了一些注釋,希望對大家的學(xué)習(xí)有幫助,下面這個例子是jaxp包中帶的例子:CountDom.java,這個例子要點有:如何得到一個Document對象,以及對節(jié)點類型的判斷�?梢钥吹�,jaxp程序都從得到一個DocumentBuilderFactory實例開始,再從中獲得DocumentBuilder實例,DocumentBuilder實例就可以新建一個空的Document或者parse一個已有的xml文檔。

/*
* 使用DOM方法來遍歷XML樹中的所有節(jié)點,對節(jié)點類型為ELEMENT的進(jìn)行統(tǒng)計
*/
import java.io.*;

// import JAXP包
import org.w3c.dom.*; // 這個里面主要定義了一系列的Interface

import org.xml.sax.*; // 為什么要載入這個包呢,我認(rèn)為是因為要拋出異常,解析XML的異常在SAX中
// 都定義好了,所以DOM就直接用了

import javax.xml.parsers.DocumentBuilderFactory;// factory API,用來獲得一個parser
import javax.xml.parsers.DocumentBuilder; // 用來從XML文檔中獲得DOM文檔實例

public class CountDom {

/* main函數(shù),這個就不用講了,調(diào)用getElementCount(),arg參數(shù)就是要處理的xml文件名 */
public static void main(String[] args) throws Exception {
for (int i = 0; i < args.length; i++) {
String arg = args[i];
System.out.println(arg + " elementCount: " + getElementCount(arg));
}
}

/* 調(diào)用 getElementCount(Node),Node是節(jié)點 */
public static int getElementCount(String fileName) throws Exception {
Node node = readFile(fileName); // readFile(String)獲得一個文件實例
// readFile(File)返回Document
return getElementCount(node); // 統(tǒng)計Elements
}

/* 創(chuàng)建文件對象, 調(diào)用 readFile(File) */
public static Document readFile(String fileName) throws Exception {
if (null == fileName) {
throw new Exception("no fileName for readFile()");
}
return readFile(new File(fileName));
}

/* 解析文檔,返回 Document */
public static Document readFile(File file) throws Exception {
Document doc;
try {
/* 首先獲得一個 DocumentBuilderFactory 的實例 */
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

/* 下面看是不是要對xml文檔進(jìn)行有效性判斷,缺省是false */
// dbf.setValidating(true);

/* 創(chuàng)建一個 DocumentBuilder 的實例*/
DocumentBuilder db = dbf.newDocumentBuilder();

/* 解析文檔 */
doc = db.parse(file);

/* 返回一個 Document 實例*/
return doc;
} catch (SAXParseException ex) {
throw (ex);
} catch (SAXException ex) {
Exception x = ex.getException(); // get underlying Exception
throw ((x == null) ? ex : x);
}
}

/*
 * 使用DOM方法來統(tǒng)計 ELEMENTS
 */
public static int getElementCount(Node node) {
/* 如果node為空的話,然回0 */
if (null == node) {
return 0;
}
int sum = 0;
// 首先,第一個是節(jié)點的根,判斷一下是不是ELEMENT
boolean isElement = (node.getNodeType() == Node.ELEMENT_NODE);
// 如果節(jié)點的根是ELEMENT節(jié)點,那sum的初始值就是1
if (isElement) {
sum = 1;
}
// 發(fā)揮節(jié)點的所有子節(jié)點
NodeList children = node.getChildNodes();

// 沒有任何子節(jié)點的情況下,返回當(dāng)前值
if (null == children) {
return sum;
}
// 遍歷節(jié)點的所有子節(jié)點
for (int i = 0; i < children.getLength(); i++) {
//用遞歸
sum += getElementCount(children.item(i));
}
return sum;
}
}





主站蜘蛛池模板: 亚洲一级片在线播放 | 青青操原| 亚洲欧美视频在线 | 中文字幕在线观看不卡视频 | 日韩麻豆 | 日本网站在线看 | 天天干天天拍 | 中文乱码一二三四有限公司 | 午夜国产精品免费观看 | 中文字幕国产精品 | 欧美自拍视频在线 | 中国黄色毛片 大片 | 天天色天天色 | 在线a网站 | 四虎精品免费永久在线 | 亚洲二区在线 | 欧美亚洲国产日韩 | 香蕉网站狼人久久五月亭亭 | 亚洲成a人不卡在线观看 | 伊人久久天堂 | 日韩成年人视频 | 日韩资源 | 亚洲人成在线播放 | 天天综合色天天综合网 | 啪视频免费 | 日本精品久久久久久久 | 亚洲国产成人久久综合一 | 色综合天天综合网站中国 | 一级床片40分钟免费视频 | 无码中文资源在线播放 | 日韩黄色大片免费看 | 亚洲欧美日韩一级特黄在线 | 亚洲综合激情网 | 欧美亚洲日本国产 | 欧美一级淫片免费播放40分钟 | 天天色国产 | 亚洲国产成人久久一区二区三区 | 欧美一级特黄一片免费 | 一区小说二区另类小说三区图 | 午夜在线播放免费高清观看 | 欧美一级久久久久久久大片 |