国产男女无遮挡_日本在线播放一区_国产精品黄页免费高清在线观看_国产精品爽爽爽

  • 熱門標簽

當前位置: 主頁 > 航空資料 > 計算機 >

時間:2010-08-09 13:05來源:藍天飛行翻譯 作者:admin
曝光臺 注意防騙 網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者

獨立的程序。下面首先給出要解析的文件:
程序清單6 - 5
第6章SAX 1.0: XML簡易API使用151 下載
注意parse( )的參數是一個U R L字符串。稍后會給出如何用一個文件名代替U R L。因為程序
涉及到數據的輸入和輸出,所以必須添加“ throws Exception”到countBooks( )方法以使發生錯
誤時發出警告。
還需要添加Java main( ) 方法以使程序成為一個獨立的應用程序。在m a i n方法中用n e w
BookCounter( )創建類的一個實例,然后調用對象的countBooks( )方法;同時對新建對象進行全
程跟蹤。代碼如下所示:
程序清單6 - 6
現在程序可以運行了:解析文檔直至運行結束(當然假設存在要被解析的文檔)。
唯一的不足是程序現在沒有產生輸出。為使程序更有用,需要添加一個方法對出現的
< b o o k >開始標簽進行計數,另外添加方法在文檔末尾輸出書的統計數目。這些方法使用了全局
變量c o u n t。
應用程序的最后版本如下所示。可以在我們的站點h t t p : / / w w w. w r o x . c o m /上關于本書的專欄
里找到本章中的代碼。
程序清單6 - 7
152使用XML 高級編程
下載
現在可以通過下列形式的命令從命令行運行應用程序:
程序會輸出給出的X M L文件中< b o o k >元素的數目。假設c : \ d a t a \ b o o k s . x m l文件中包含下列文
件(可以從h t t p : / / w w w. w r o x . c o m下載獲取本章中的代碼):
程序清單6 - 8
這樣在終端會顯示下列輸出:
第6章SAX 1.0: XML簡易API使用153 下載
3. DocumentHandler接口
如上面的例子所示,一個S A X應用程序的主要工作是在實現D o c u m e n t H a n d l e r接口的類里完
成的。通常我們會對比上面簡單例子包含的更多的事件感興趣,因此讓我們看一下構成接口的
其他方法。
(1) 文檔事件
首先,有一對方法標記文檔處理的開始與結束:
• startDocument( )
• endDocument( )
這兩個方法沒有參數和返回值。實際上,你通常可以不使用它們,因為程序開始進行的操
作一般可以在調用parse( )之前完成,而程序結束時要做的操作可以在parse( )返回值時完成。但
是在一個更復雜的應用程序中,你可能希望調用parse( )的應用程序是從D o c u m e n t H a n d l e r派生的
一不同的類,在此種情況下,這兩個方法有助于初始化變量和最后回收變量資源。
注意一個S A X解析器(P a r s e r類的一個簡單實例)應該同時只能解析一個X M L文檔。一旦它
完成了解析,可以再使用它解析其他文檔。如果你想同時解析幾個文檔,就需要為每個文檔創
建一個P a r s e r類的實例。你肯定想把這種文檔實例一一對應的規則應用到D o c u m e n t H a n d l e r,因
為在告知事件來源于哪個文檔的事件信息中也沒有進行什么其他操作。
(2) 元素事件
與文檔事件一樣,有一對可調用的方法用來標記文檔中每個元素的開始和結束標簽:
• startElement(String name,AttributeList attList)
• endElement(String name)
n a m e是指在元素開始和結束標簽中出現的名稱。
如果文檔對一個空元素使用簡短語法表示(即“ < t a g / >”),解析器將完全按你書寫
“< t a g > < / t a g >”的方式通報開始和結束標簽。這是因為X M L定義這兩個結構是同等的,所以應
用程序不需要知道使用的是哪一個。
在開始標簽里出現的屬性捆綁在一起成為A t t r i b u t e L i s t對象,同時立刻被應用程序處理;
于事件的模式即始于此,你可能希望每個屬性在出現時都發出通報。A t t r i b u t e L i s t是S A X定義的
另一個接口。類似于解析器,它定義了一個實現接口的類:應用程序需要知道的是它為了獲取
各個屬性詳細信息時可以調用的方法。其中最有用的一個是:
• getValue(String name)
該方法在屬性存在時以字符串形式返回命名屬性的值,否則返回空。
關于A t t r i b u t e L i s t需要注意的是它僅在startElement( )方法的生命周期中有效。一旦該方法將
控制權返回給解析器,它可能(并且經常會)用不同的信息覆蓋A t t r i b u t e L i s t。如果想保留屬性
信息以備后用,你需要做一個副本。一種簡便的方式是使用S A X“h e l p e r”類A t t r i b u t e L i s t I m p l:
可以讓你創建另一個A t t r i b u t e L i s t作為已給出A t t r i b u t e L i s t的私有副本。
(3) 字符數據
X M L文檔中出現的字符數據一般通過下面的方法報告給應用程序:
• characters(char[] chars, int start, int len)
154使用XML 高級編程
下載
定義這種接口更多的是為了效率而不是方便。如果想把字符數據作為S t r i n g處理,你可以簡
單地構造一個字符串:
解析器可能已經創建了S t r i n g結構,但是在J a v a中創建新的對象是需要占用大量資源的,所
以它只給出指向字符存放位置的指針。
使用J a v a處理X M L的一個優點是J a v a和X M L都是采用統一碼標準字符集。不管開始的源文
檔中使用哪種字符編碼方式,以c h a r s數組形式傳遞的字符始終是本地化的J a v a統一碼字符。
重要的一點是解析器可以任意分解字符數據,也可以同時只傳送一部分。這就是說如果你
想在文檔中查找“g o l d”,那么下面的代碼就有錯誤:
程序清單6 - 9
為什么呢?因為可能文檔中出現了“ g o l d”字符串,但是是通過兩次或更多次characters( )
方法調用來告知應用程序。理論上,可能會有四個調用,分別對應“ g ” , “ o ” 和, “ “l d” ”。
問題的最壞情況是在測試中你可能沒有發現這種問題,因為實際上解析器很少用這種方式
分解文本。例如,它們可能僅當文本恰好處于一個4 0 9 6字節邊界時才分解文本(同時如果內存
 
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:XML高級編程上(59)
国产男女无遮挡_日本在线播放一区_国产精品黄页免费高清在线观看_国产精品爽爽爽
天堂一区二区三区| 国产一区高清视频| 精品91一区二区三区| 久久av免费一区| 五月天在线免费视频| 国产精品揄拍一区二区| 日韩视频免费在线| 欧美一级在线看| 国产精品12345| 亚洲va码欧洲m码| av动漫在线免费观看| 在线视频亚洲自拍| av动漫在线免费观看| 欧美激情精品在线| 国产欧美精品一区二区三区介绍| 国产精品激情av在线播放| 精品91一区二区三区| 国产精品视频一区二区高潮| 激情小说综合网| 国产精品观看在线亚洲人成网| 免费久久99精品国产自| 久久精品青青大伊人av| 欧美亚州在线观看| 国产成人精品午夜| 黄网站色视频免费观看| 国产精品美女主播在线观看纯欲| 免费在线观看亚洲视频| 久久人人爽亚洲精品天堂| 激情综合网俺也去| 精品福利影视| av日韩中文字幕| 天天成人综合网| 久久国产精品精品国产色婷婷| 日本三级久久久| 按摩亚洲人久久| 国产精品天天av精麻传媒| 99精品免费在线观看| 国产乱人伦精品一区二区三区| 国产日韩欧美综合精品| www.av中文字幕| 亚洲人成网站在线观看播放| 91精品国产91久久久久久不卡| 日本一区二区三区免费看| 日韩中文有码在线视频| 好吊色欧美一区二区三区| 中文字幕乱码人妻综合二区三区| 91精品成人久久| 秋霞无码一区二区| 久久国产精品久久国产精品| 97精品视频在线观看| 色婷婷综合久久久久中文字幕| 91精品国产高清久久久久久91裸体| 婷婷五月色综合| 精品国产一区二区三区四区在线观看| 激情小视频网站| 一本二本三本亚洲码| 久久免费视频在线| 欧美一区二区三区精美影视| 国产精品视频免费在线| 成人福利网站在线观看11| 日韩av在线播放不卡| 国产精品久久精品| 久在线观看视频| 免费观看国产精品视频| 亚洲精品免费在线视频| 国产精品视频色| youjizz.com亚洲| 日韩精品一区在线视频| 欧美人交a欧美精品| 久久免费国产视频| 蜜桃视频日韩| 视频一区二区精品| 国产精品狼人色视频一区| 91久久久在线| 精品欧美一区二区精品久久| 亚洲午夜精品一区二区| 久久精品中文字幕| 97精品国产97久久久久久| 欧美日韩福利在线| 少妇免费毛片久久久久久久久| 国产精品久久久久久久久久ktv| 99在线视频首页| 韩国欧美亚洲国产| 少妇人妻互换不带套| 久久综合五月天| 日韩在线免费高清视频| av中文字幕av| 欧美日韩国产精品激情在线播放| 一区二区视频在线免费| 国产精品美女www爽爽爽视频| 久久一区二区三区欧美亚洲| 国产中文字幕乱人伦在线观看| 热久久免费国产视频| 亚洲成人网上| 欧美激情视频网| 国产精品欧美激情在线播放| 91精品国产综合久久久久久蜜臀 | 国产精品久久久av久久久| 国产成人艳妇aa视频在线| 国产精品最新在线观看| 欧美中日韩在线| 日本视频一区二区在线观看| 欧美精品福利视频| 国产精品久久久久免费| 久久综合九色综合久99| 91精品久久久久| 91久久伊人青青碰碰婷婷| 国产伦精品一区二区三区免费视频| 欧美日韩亚洲第一| 日韩精品一区二区免费| 日本一区二区三区在线视频| 污视频在线免费观看一区二区三区| 久久久久久com| 精品国产一区二区三区四区vr| 国产精品无码免费专区午夜| 色偷偷91综合久久噜噜| 国产成一区二区| 8050国产精品久久久久久| 高清一区二区三区四区五区| 国产在线观看欧美| 麻豆中文字幕在线观看| 欧美精品欧美精品| 欧美中文字幕在线播放| 青草热久免费精品视频| 日本在线观看一区| 日本欧美精品在线| 日韩欧美一区二| 日av中文字幕| 欧美精品第三页| 狠狠噜天天噜日日噜| 国模私拍视频一区| 国产免费裸体视频| y111111国产精品久久婷婷| 成人国内精品久久久久一区| 国产日韩中文字幕在线| 国产嫩草一区二区三区在线观看| 国产区欧美区日韩区| 国产女人精品视频| 欧美性一区二区三区| 国产在线精品一区二区中文| 黄色国产精品视频| 国模精品系列视频| 国产色一区二区三区| 高清视频一区二区三区| av无码精品一区二区三区| 91成人免费观看网站| 久久99久久99精品蜜柚传媒| 播播国产欧美激情| 国产精品久久久久久久久久ktv| 国产成人精品综合久久久| 国产精品二区在线观看| 中文字幕一区二区三区四区五区人| 亚洲人精品午夜射精日韩| 日韩av免费在线播放| 日韩免费中文字幕| 激情五月亚洲色图| www亚洲国产| 久久久久人妻精品一区三寸| 国产精品久久久久久久久久 | 久久精品国产一区| 国产精品极品在线| 一级一片免费播放| 日韩精品欧美专区| 国自在线精品视频| 91精品在线播放| 精品国产一区久久久| 欧美情侣性视频| 日韩免费av一区二区| 国产在线精品一区| 久久最新免费视频| 国产精品色悠悠| 亚洲欧美日韩在线综合| 欧美亚洲在线视频| 成人www视频在线观看| 国产成人生活片| 亚洲国产精品日韩| 免费在线观看亚洲视频| 91精品国产综合久久香蕉的用户体验| 久久久久久久激情| 精品国产91亚洲一区二区三区www| 日本欧美在线视频| 国产乱子伦农村叉叉叉| 视频直播国产精品| 在线观看国产一区| 欧美第一黄网| 91久久国产婷婷一区二区| 久久精品国产69国产精品亚洲| 亚洲影院色在线观看免费| 欧美日韩一区综合| 91av福利视频| 国产aaa免费视频| 欧美日韩一区综合| 国产福利不卡| 精品久久sese| 欧美激情亚洲天堂| 国产高清精品一区| 这里只有精品66| 欧美激情亚洲天堂| 久久国产欧美精品| 伊甸园精品99久久久久久|