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

  • 熱門標簽

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

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

載到內存中而造成的開銷,可以使用S A X等事件驅動的解析器處理大型X M L文件,我們將在下
一章介紹S A X。
144使用XML 高級編程
下載
下載
第6章SAX 1.0:XML簡易API
在第5章里考慮了如何使用文檔對象模型( D O M )編寫應用程序。本章將著眼于處理X M L文檔
的另一種方式: S A X接口。我們先論述一下為什么要選擇使用S A X接口而不是文檔對象模型,
然后通過編寫一些簡單的應用程序來探究S A X接口技術。本章也將討論一些設計模式,它們在
創建更復雜的S A X應用程序時會有所幫助。最后本章描述了S A X未來的發展前景。
S A X的接口風格完全不同于文檔對象模型。文檔對象模型應用程序通過遵循內存中的對象
參照來要求文檔中的內容;使用S A X ,解析器通過向應用程序報告解析事件流來告知應用程序文
檔的內容。
S A X即X M L簡易應用程序編程接口,全稱是擴展標記語言簡易應用程序編程接口。
從名稱上可以看出, S A X接口可以用來編寫應用程序以讀取X M L文檔中存有的數據。S A X
在本質上是一種J a v a接口,本章所有給出的例子也是用J a v a編寫的。(因為本章沒有足夠的篇幅
講解J a v a 技術,為此我們假設讀者已具有了J a v a 的相關知識。參見Wr o x 出版社出版的
《Beginning Java2 》,ISBN 1861002238 ;也可以在h t t p : / / w w w. j a v a . s u n . c o m查找到更多的信
息。)
S A X接口事實上被所有的Java XML 解析器支持,而且兼容性非常好。參看h t t p : / / w w w.
x m l s o f t w a r e . c o m或David Megginson的站點h t t p : / / w w w. m e g g i n s o n . c o m / S A X /列出的一些實例。
在用J a v a編寫S A X應用程序前,你需要安裝S A X類(當然要先安裝Java JDK)。大多數情況
下你會發現X M L解析器自動幫你安裝了S A X類(稍后我們將告知如何快捷地獲取這些解析器)。
檢查在你的類路徑中是否包含如o rg . x m l . s a x . P a r s e r 的類, 如果沒有, 你可以從
h t t p : / / w w w. m e g g i n s o n . c o m / S A X /安裝這些類。我們隨后將介紹一下關于S A X的起源與發展趨勢。
但是現在我們將僅提及它最顯著的一個特性: S A X不屬于任何標準組織或團體,也不屬于任何
公司或個人;它是供任何人實現與使用的一種計算機技術。尤其與大多數X M L標準族的不同之
處在于,S A X和W 3 C組織沒有任何關系。
S A X的開發工作由David Megginson負責協調, S A X的規范可在David Megginson的站點查找
(h t t p : / / w w w. m e g g i n s o n . c o m / S A X/。這個規范中有些不重要的編輯方面的修改,對本書附錄C中
的相關約定進行了再版。
6.1 事件驅動接口
從程序中讀取X M L文檔基本上有三種方式:
• 把X M L只當做一個文件讀取,然后自己挑選出其中的標簽。這是黑客們的方法,我們不推
薦這種方式。你很快會發現處理所有的特殊情況(包括不同的字符編碼,例外約定,內部
和外部實體,缺省屬性等)比想象的困難得多;你可能不能夠正確地處理所有的特殊情況,
這樣你的程序會接收到一個非常規范的X M L文檔,卻不能正確地處理它。要避免這種想法:
X M L解析器似乎并不昂貴(大多數是免費的)。
• 可以用解析器分析文檔并在內存里創建對文檔內容樹狀的表達方式:解析器將輸出傳遞給
文檔對象模型,即D O M。這樣程序可以從樹的頂部開始遍歷,按照從一個樹單元到另一
個單元的引用,從而找到需要的信息。
• 也可以用解析器讀取文檔,當解析器發現標簽時告知程序它發現的標簽。例如它會告知它
何時發現了一個開始標簽,何時發現了一些特征數據,以及何時發現了一個結束標簽。這
叫做事件驅動接口,因為解析器告知應用程序它遇到的有含義的事件。如果這正是你需要
的那種接口,可以使用S A X。
讓我們更加詳細地看一下事件驅動解析過程。
你可能已經在用戶接口編程中遇到過“事件驅動”這個術語,用來編寫應用程序以響應發
生的如鼠標點擊等事件。事件驅動解析器和其類似:特別是你必須習慣于應用程序不是你所控
制這一概念。一旦事情要開始發生,你不需要調用解析器,而是解析器調用程序。開始看起來
有些奇怪,但是一旦你習慣了,這就不是個問題。實際上,它比用戶接口編程更容易,因為不
需要忙于處理隨時發生的鼠標事件, X M L要解析的事件按照相對可預見的順序出現。X M L元素
必須完全成對出現,所以你可以知道每個已經打開的元素隨后肯定會被關閉。
下面是一個簡單的X M L文件:
程序清單6 - 1
當解析器進行處理時,它會調用一連串方法,如下所示(我們將在后面描述實際的方法命名與參
數,這里僅為例證說明):
程序清單6 - 2
你的應用程序提供當s t a r t E l e m e n t和e n d E l e m e n t等事件發生時需要調用的方法。
為什么使用事件驅動接口
假如可以選擇的話,那么知道什么情況下使用S A X這樣的事件驅動接口最好,或者在什么時
候使用D O M這樣基于樹結構的接口更好一些是很重要的。
這兩種接口都已經很好地標準化并得到廣泛的支持,因此不管使用哪一種接口,都有很多
性能良好的解析器可供選擇,而且大部分是免費的。實際上很多解析器同時支持兩種接口。
146使用XML 高級編程
下載
1. SAX的優點
下面的部分簡述了S A X接口最顯著的一些優點。
(1) 可以解析任意大小的文件
因為S A X不需要把整個文件加載到內存,所以對內存的占用一般比D O M小得多,而且不隨
著文件大小的增加而增加。當然D O M使用的實際內存數量要視解析器而定,但在大多數情況下
一個1 0 0 K b的文檔至少要占用1 M b的內存。
但是有一點要注意:如果S A X應用程序自身在內存中創建文檔的表達,它會占用和允許
解析器創建空間一樣大小的內存。
(2) 適合創建自己的數據結構
應用程序可能會想用如書、作者以及出版者這樣的高級對象而不是一些低級元素、屬性和
 
中國航空網 m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:XML高級編程上(56)
国产男女无遮挡_日本在线播放一区_国产精品黄页免费高清在线观看_国产精品爽爽爽
精品久久久久久久久久中文字幕 | 国产美女精品视频| 久久免费福利视频| 亚洲国产日韩综合一区| 成人一级生活片| 精品久久蜜桃| 精品欧美国产一区二区三区不卡| 国产成人精品久久二区二区 | 国产精品欧美久久| 欧美亚洲一二三区| 日韩亚洲成人av在线| 日本精品一区| 久久精品国产理论片免费| 欧美一级在线看| 久久免费精品日本久久中文字幕| 电影午夜精品一区二区三区| 91精品国产91久久久久| 亚洲高潮无码久久| 国产黄色特级片| 日韩高清国产一区在线观看 | 亚洲在线视频一区二区| 99视频精品全部免费看| 亚洲一区二区三区四区中文| 99在线精品免费视频| 亚洲国产一区二区在线| 久久综合九九| 日韩欧美在线免费观看视频| 日韩在线激情视频| 欧美国产视频在线观看| 国产精品久久久久久久久久ktv| 免费观看美女裸体网站| 久久亚洲精品国产亚洲老地址| 国产亚洲欧美另类一区二区三区| 国产精品日韩av| 国产一区二区在线网站| 中文字幕成人一区| 91精品国产91久久久久久久久| 日韩av电影在线播放| 久久久精品免费视频| 欧美成人蜜桃| 欧美精品久久久久a| 97精品视频在线| 日本少妇高潮喷水视频| 国产成人精品一区二区在线| 国产中文字幕二区| 欧美极品欧美精品欧美视频| 91精品91久久久久久| 人妻熟女一二三区夜夜爱| 国产成人久久精品| 国产午夜福利在线播放| 亚洲欧美国产精品桃花| 久草青青在线观看| 国产综合久久久久| 亚洲激情一区二区三区| 久久精品国产清自在天天线| 国产欧美自拍视频| 水蜜桃亚洲精品| 国产精品视频永久免费播放| 国产乱子夫妻xx黑人xyx真爽| 天堂√在线观看一区二区| 国产精品久久久久久久久久久久冷| 国产精品午夜一区二区欲梦| 日本免费黄视频| 国产精品高清在线观看| 91精品国产高清自在线看超| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲一区二区自拍| 久久久国产一区| 97伦理在线四区| 欧美极品欧美精品欧美图片| 亚洲免费久久| 国产精品第三页| 久久美女福利视频| 国产精品一区二区三区免费| 青青草成人免费在线视频| 欧美日韩xxx| 国产成人精品在线视频| 91久久久亚洲精品| 欧美成ee人免费视频| 亚洲一区二区三区午夜| 国产精品高潮呻吟久久av无限| 国产成人综合一区二区三区| 国产乱子伦精品无码专区| 欧美日韩高清在线一区| 亚洲va欧美va国产综合久久 | 国产精品99久久久久久久久 | 久久国内精品一国内精品| 91精品国产综合久久香蕉| 国产中文字幕日韩| 欧美日韩精品免费观看| 亚洲黄色一区二区三区| 久久99久久99精品免观看粉嫩 | 免费av一区二区| 久久久999国产精品| 国产精品a久久久久久| 国产厕所精品在线观看| 不卡一区二区三区视频| 国内成人精品视频| 日韩精品一区二区三区色欲av| 伊人久久99| 精品国产综合区久久久久久 | 国产精品高清在线| 日韩一区二区三区在线播放| 久久综合中文色婷婷| 成人a级免费视频| 国产日韩精品久久| 国产综合动作在线观看| 欧美日韩国产综合在线| 日本免费黄视频| 色999五月色| 午夜dv内射一区二区| 亚洲一区三区视频在线观看| 国产aaa精品| 九九热视频这里只有精品| 国产精品大全| 国产精品久久久一区二区三区| 久久久久久精| 国产福利精品在线| 久久久水蜜桃| 91精品国产综合久久香蕉922 | 久久免费一级片| 久久婷婷人人澡人人喊人人爽| 91久久久久久| 国产精品50p| 国产精品2018| 国产av人人夜夜澡人人爽麻豆| 91禁国产网站| 国产suv精品一区二区| 国产av天堂无码一区二区三区| 久久精品日产第一区二区三区 | 尤物国产精品| 亚洲va久久久噜噜噜久久狠狠| 亚洲va欧美va在线观看| 日本一区二区三区视频在线观看| 无码中文字幕色专区| 日韩精品综合在线| 男人亚洲天堂网| 国产一区精品在线| 高清一区二区三区四区五区| 99国内精品久久久久久久软件| 91精品视频播放| 国产不卡在线观看| 国产精品爽黄69天堂a| 久久这里只有精品视频首页| 在线播放 亚洲| 日本精品二区| 免费观看国产精品视频| 国产伦精品一区二区三区在线| 99精品一区二区三区的区别| 91精品国产沙发| 久久久999国产| 久久国产视频网站| 午夜精品www| 欧美日韩亚洲免费| 成人黄色av网站| 久久久com| 国产精品嫩草视频| 综合操久久久| 热99久久精品| 国产免费黄视频| 国产高潮呻吟久久久| 国产精品久久久久免费a∨大胸| 一区不卡视频| 欧美日韩免费精品| 丰满人妻中伦妇伦精品app| 国产成人av网| 国产av不卡一区二区| 日本午夜精品电影| 国产一区免费在线| 国产成人综合一区| 久久av在线看| 日韩aⅴ视频一区二区三区| 国内免费久久久久久久久久久| 成人免费在线小视频| 北条麻妃在线一区二区| 欧美精品在线免费| 人妻少妇精品无码专区二区| 成人免费在线网址| 国产精品无码人妻一区二区在线| 欧美精品久久久久a| 欧美日韩精品在线一区二区| 91麻豆精品秘密入口| 国产精品美女呻吟| 午夜精品一区二区三区视频免费看 | 痴汉一区二区三区| 国产主播一区二区三区四区| 国产成人在线一区| 欧美极品第一页| 欧美二区三区| 久久久综合av| 色综合导航网站| 青青草国产精品视频| 91精品国产91久久久久青草| 国产精品福利久久久| 日韩亚洲不卡在线| 91精品视频专区| 久久国产精品影视| 黄色一级视频播放| 久久er99热精品一区二区三区| 一本—道久久a久久精品蜜桃|