一種嵌入式瀏覽器中的HTML解析器的設(shè)計(jì)_第1頁
一種嵌入式瀏覽器中的HTML解析器的設(shè)計(jì)_第2頁
一種嵌入式瀏覽器中的HTML解析器的設(shè)計(jì)_第3頁
一種嵌入式瀏覽器中的HTML解析器的設(shè)計(jì)_第4頁
一種嵌入式瀏覽器中的HTML解析器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第卷第期年月湖南科技學(xué)院學(xué)報(bào)、,一種嵌入式瀏覽器中的解析器的設(shè)計(jì)盾石(湖南科技學(xué)院電子信息工程與物理系,湖南永州)摘要:本文主要介紹了一種解析器的設(shè)計(jì),以及其在數(shù)字電視機(jī)頂盒中的實(shí)現(xiàn);另外還簡(jiǎn)述了層疊樣式表技術(shù)在嵌入式瀏覽器中的實(shí)現(xiàn)關(guān)鍵字:;嵌入式瀏覽器;解析器;中圖分類號(hào):文獻(xiàn)標(biāo)識(shí)碼:文章編號(hào):()引言隨著以計(jì)算機(jī)技術(shù)、通汛技術(shù)、消費(fèi)電子技術(shù)為主的信息技術(shù)的飛速發(fā)展和互聯(lián)網(wǎng)的廣泛應(yīng)用,數(shù)字電視、等數(shù)字多媒體和信息設(shè)備日益普及,計(jì)算機(jī)的發(fā)展已顯示出微型化、智能化、網(wǎng)絡(luò)化的趨勢(shì)。嵌入式系統(tǒng)已廣泛應(yīng)用于消費(fèi)電子和通信領(lǐng)域。在嵌入式系統(tǒng)中,嵌入式瀏覽器將成為最主要的應(yīng)用軟件,甚至有可能是唯一的直接支

2、持的應(yīng)用軟件【】。目前,國(guó)內(nèi)外的嵌入式瀏覽器產(chǎn)品可謂是高手云集,國(guó)外主要有、,、等;國(guó)內(nèi)主要有中科院的、茁壯公司的等。而在眾多的信息電器和便攜式網(wǎng)絡(luò)終端中,數(shù)字電視機(jī)頂盒可以說是最能實(shí)現(xiàn)嵌入式瀏覽器的功用,在我國(guó),從模擬電視到數(shù)字電視的過渡將是一個(gè)長(zhǎng)期的過程,為了滿足人們?nèi)找嬖鲩L(zhǎng)的對(duì)網(wǎng)絡(luò)信息的需求,研究基于數(shù)字電視機(jī)頂盒的嵌入式瀏覽器的實(shí)現(xiàn)與應(yīng)用具有重要的意義。超文本標(biāo)記語言是網(wǎng)絡(luò)世界進(jìn)行信息交換的最主要的語言之一,而對(duì)語言的解析是瀏覽器中的核心技術(shù),解析的好壞關(guān)系到整個(gè)瀏覽器的性能。本文即從這點(diǎn)出發(fā),介紹并探討標(biāo)記語言解析的關(guān)鍵技術(shù)的算法,以及其在數(shù)字電視機(jī)頂盒中的實(shí)現(xiàn);另外還介紹說明層疊樣

3、式表與耵加,的結(jié)合解析實(shí)現(xiàn)問題。本文中的嵌入式瀏覽器的總體結(jié)構(gòu)嵌入式瀏覽器還沒有一個(gè)準(zhǔn)確、嚴(yán)格的定義,但從其可以完成的功能來看,可以從兩個(gè)方面進(jìn)行描述。第一,它必須是一個(gè)網(wǎng)絡(luò)信息瀏覽器,必須支持或者等其它傳輸協(xié)議、支持一種或幾種標(biāo)記語言,如、,或擴(kuò)展。可以完成網(wǎng)頁的瀏覽功能;第二,這個(gè)瀏覽器必須適合在非的嵌入式信息設(shè)備中存在、運(yùn)行收稿日期:作者簡(jiǎn)介:唐云(),女,湖南永州人,碩士,研究方向?yàn)槎嗝襟w通信。并完整實(shí)現(xiàn)通訊傳輸辦議、標(biāo)記語言所規(guī)定的功能,必須能夠根據(jù)嵌入式設(shè)備的多樣性需要而方便地進(jìn)行裁減和修改,同時(shí)滿足信息設(shè)備使用者對(duì)獲取文字、圖像、聲音、視頻等信息地要求。本文中的瀏覽器的總體結(jié)構(gòu)框

4、圖如圖所示,請(qǐng)求圖片數(shù)據(jù)巨瀏覽器總體框架結(jié)構(gòu)傳輸模塊:傳輸模塊可以看作是一個(gè)相對(duì)較為獨(dú)立的模塊,其主要作用就是采用基于對(duì)象輪播技術(shù)的數(shù)據(jù)視頻廣播傳輸協(xié)議向數(shù)據(jù)廣播前端申請(qǐng)相應(yīng)的網(wǎng)頁數(shù)據(jù)流,該模塊在兩種情況下可能會(huì)被觸發(fā)運(yùn)行,一是來自人機(jī)交互模塊的消息,當(dāng)用戶用遙控按下一個(gè)新的鏈接焦點(diǎn),則人機(jī)交互模塊將會(huì)調(diào)用傳輸模塊;二是來自解析模塊,當(dāng)解析模塊解析得到如等標(biāo)記中有圖片地址時(shí),也可能調(diào)用傳輸模塊從指定的地址取得數(shù)據(jù)。緩存管理模塊:負(fù)責(zé)網(wǎng)頁、圖像數(shù)據(jù)保存、淘汰操作,用戶和解析摸塊的每次請(qǐng)求,由緩存管理模塊根據(jù)緩存數(shù)據(jù)決定是否調(diào)用傳輸模塊。解析模塊:當(dāng)傳輸模塊下載完畢一頁網(wǎng)頁后,解析模塊將被調(diào)用,主

5、要負(fù)責(zé)文本的解析,生成顯示對(duì)象鏈表,讀到標(biāo)記則掃描該頁文檔,建立對(duì)象數(shù)據(jù)結(jié)構(gòu)并調(diào)用解析器。讀到標(biāo)記調(diào)用解析器。顯示模塊:負(fù)責(zé)依據(jù)解析模塊傳來的顯示對(duì)象,調(diào)用進(jìn)行顯示排版以及處理用戶與頁面的交互。人機(jī)交互模塊:是指響應(yīng)用戶的遙控操作,當(dāng)點(diǎn)擊新的頁面時(shí)則調(diào)用傳輸模塊,或是退出瀏覽器時(shí)則關(guān)閉瀏覽器線程。解析器設(shè)計(jì)與實(shí)現(xiàn)語言是一種簡(jiǎn)單的標(biāo)記語言,它是由標(biāo)記和屬性構(gòu)成,每個(gè)標(biāo)記由小于號(hào)。?和大于號(hào)”所圍住,如。大部分標(biāo)記有起始標(biāo)記和結(jié)束標(biāo)記,在起始標(biāo)記的標(biāo)記名前加上符號(hào)。,便是結(jié)束標(biāo)記,如。在起始標(biāo)記與結(jié)束標(biāo)記之間的內(nèi)容即為該標(biāo)記的作用范圍。超文本標(biāo)記語言標(biāo)準(zhǔn)到目前共經(jīng)歷了,。,五個(gè)版本,自于年月推出后

6、,近六年沒有變化,可見該語言已趨于成熟可靠。瀏覽器最重要的功能是按語言的規(guī)范將,其它其它字符、文檔顯示出來,因此負(fù)責(zé)解析文檔,生成中間結(jié)果的解析模塊是瀏覽器的核心模塊,而解析器的主要組成部分是對(duì)的解析睇。文本的解析過程可分為詞法分析、語法分析、語義分析這三個(gè)步驟。詞法分析詞法分析足瀏覽器設(shè)計(jì)的基礎(chǔ)環(huán)節(jié)之一,詞法分析是為了從字符流中識(shí)別出有意義的符號(hào)。對(duì)于標(biāo)記語言來說,這些符號(hào)包括標(biāo)記名、文本、注釋等;它的效率與準(zhǔn)確性、容錯(cuò)性也關(guān)系到整個(gè)瀏覽器設(shè)計(jì)的質(zhì)量。本文中的解析器的詞法分析的設(shè)計(jì)與實(shí)現(xiàn)可用種狀態(tài)有限狀態(tài)自動(dòng)機(jī)()來描述:初始狀態(tài),當(dāng)詞法分析器成功地分解出一個(gè)有意義的符號(hào)后將恢復(fù)到該狀態(tài);文

7、本狀態(tài),標(biāo)記與標(biāo)記之間的內(nèi)容;標(biāo)記開始狀態(tài),當(dāng)讀到一個(gè)時(shí),并且不是,或之后,或之前的內(nèi)容;標(biāo)記符號(hào)狀態(tài);注釋或代碼狀態(tài),在!之中的內(nèi)容可能是注釋也可能足或腳本代碼。詞法分析器的中各個(gè)狀態(tài)之間轉(zhuǎn)化以及相應(yīng)的條件和動(dòng)作見圖。且不在昀,妒之后一一其它字符巨詞法分析中的有限自動(dòng)狀態(tài)機(jī)詞法分析中還有一個(gè)非常關(guān)鍵的技術(shù)即標(biāo)記的識(shí)別算法,由于規(guī)范中定義的標(biāo)記有個(gè),在解析過程中將頻繁對(duì)它們進(jìn)行查找,所以得找一種快速查找算法識(shí)別解析文本中的標(biāo)記,本文中的瀏覽器采用哈希表,建立一個(gè)沒有沖突的哈希表是比較困難的,本文設(shè)計(jì)的哈希函數(shù):【)()()其中,是標(biāo)記名的長(zhǎng)度,()為從字符到數(shù)字的轉(zhuǎn)換表,所得的哈希表的長(zhǎng)度為。

8、語法分析傳統(tǒng)的語法分析技術(shù)很多基本上分為白頂向下的分析技術(shù)和自底向上的分析技術(shù)。由的語法規(guī)則,可以采用白頂向下的分析技術(shù)。當(dāng)詞法分析出一個(gè)標(biāo)記則調(diào)用相應(yīng)標(biāo)記的處理函數(shù),函數(shù)的調(diào)用采用瀏覽器中的方式,即建立一個(gè)靜態(tài)函數(shù)數(shù)組,通過對(duì)應(yīng)標(biāo)記的序號(hào)調(diào)用。一個(gè)完整的文檔必須包括個(gè)部分:一個(gè)元素定義文檔版本信息,一個(gè)用定義各項(xiàng)聲明的文檔頭部和一個(gè)由或者:定義的文檔主體部分【。但考慮到瀏覽器的容錯(cuò)性,語法檢查都放寬了許多。由的語法結(jié)構(gòu),大部分標(biāo)記有開始標(biāo)記和結(jié)束標(biāo)記,可以借助于堆棧來檢查文檔的語法錯(cuò)誤,起始標(biāo)記入棧前,檢查其位置是否正確,結(jié)束標(biāo)記出棧前,檢查是否與棧頂標(biāo)記相匹配。語義分析經(jīng)過的語法分析后,根

9、據(jù)標(biāo)記的含義創(chuàng)建相應(yīng)的顯示對(duì)象,并根據(jù)文檔的標(biāo)記的嵌套關(guān)系建立對(duì)象鏈表,每個(gè)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)如下:;(對(duì)象類型序號(hào));(每個(gè)對(duì)象的結(jié)構(gòu));(指向下一個(gè)節(jié)點(diǎn));(父節(jié)點(diǎn));有表格),(文本),(圖片),(表單)由于顯示需要,共創(chuàng)建了種對(duì)象類型。等,對(duì)象類型的確定與顯示有緊密的聯(lián)系,本文中的瀏覽器瀏覽器解析模塊的工作流程圖如圖所示,是囪是否其他圖瀏覽器解析模塊的工作流程圖容錯(cuò)性問題語言是一種結(jié)構(gòu)比較松散的標(biāo)記語言,并且在語言發(fā)展過程中兩大瀏覽器生產(chǎn)商網(wǎng)景和微軟互相拼殺,使瀏覽器功能日益龐大,對(duì)語言的容錯(cuò)能力非常強(qiáng)。亳不夸張的說,無論多么不規(guī)范的語言文檔,和都可以解析顯示。同時(shí)兩大瀏覽器廠商為了擊敗對(duì)

10、手,競(jìng)相為語言增加專有標(biāo)記,以突出自己的顯示效果。這樣就使網(wǎng)頁設(shè)計(jì)者養(yǎng)成了不好的編程習(xí)慣,只注重顯示效果并不關(guān)心語法。致使目前上存在著大量的不合規(guī)范的網(wǎng)頁。針對(duì)這種情況,瀏覽器必須采取有效的容錯(cuò)處理,才能使瀏覽器暢游于,主要的語法錯(cuò)誤主要有下面幾種:非法包含,例如和,之間包含一個(gè)表格,或是睜;非法標(biāo)記,除了規(guī)定的任何符號(hào),例如;交叉嵌套,如,;標(biāo)記不匹配,對(duì)于規(guī)范中規(guī)定必須結(jié)束標(biāo)記符的元素類型,缺少結(jié)束標(biāo)記符,或是在文檔中前面沒有這個(gè)標(biāo)記,而在后面多余寫了這個(gè)標(biāo)記的結(jié)束標(biāo)記符。針對(duì)上述錯(cuò)誤我們采取了相應(yīng)的措施來容錯(cuò),針對(duì)非法包含,如果該標(biāo)記的到來是非法的則跳過,對(duì)其不予處理;針對(duì)非法標(biāo)記,由于

11、在標(biāo)記查找表沒有相應(yīng)的符號(hào)也就沒有相應(yīng)標(biāo)記的處理函數(shù),相當(dāng)于對(duì)該非法標(biāo)記采取了忽略的作用;針對(duì)交叉嵌套,當(dāng)遇到一個(gè)結(jié)束標(biāo)記時(shí),查找棧中是否有該標(biāo)記,若有,則將其與其上的標(biāo)記全部出棧;針對(duì)標(biāo)記不匹配,對(duì)多余的結(jié)束標(biāo)記,利用堆棧,查找棧內(nèi)的標(biāo)記是否有該標(biāo)記,若沒有則不予處理,對(duì)于應(yīng)該有結(jié)束標(biāo)記而沒寫結(jié)束標(biāo)記的,若下一個(gè)開始標(biāo)記的到來可以肯定前一個(gè)標(biāo)記必須得結(jié)束了,則將應(yīng)該結(jié)束而沒有結(jié)束的標(biāo)記從堆棧中出棧。技術(shù)在嵌入式瀏覽器中的實(shí)現(xiàn)層疊樣式表()是組織為了彌補(bǔ)在樣式編排上的不足所制定的一套擴(kuò)展樣式標(biāo)準(zhǔn),其特點(diǎn)就是把網(wǎng)頁的外觀設(shè)定信息從網(wǎng)頁內(nèi)容中獨(dú)立出來。規(guī)則可以放在文檔的頭部,標(biāo)記與之間,還可以放在

12、各個(gè)標(biāo)記的屬性當(dāng)中,大部分標(biāo)記都有一個(gè)的屬性,另外,外聯(lián)樣式表更加靈活,多個(gè)文檔可以共用一個(gè)樣式表。在嵌入式瀏覽器中實(shí)現(xiàn)技術(shù)需要解決的問題主要有兩個(gè)方面:內(nèi)存優(yōu)化:由于嵌入式(下轉(zhuǎn)頁)毒數(shù)據(jù)庫操作數(shù)據(jù)庫處于應(yīng)用的最底層,存放系統(tǒng)數(shù)據(jù)和部分后臺(tái)數(shù)據(jù)庫邏輯,如存儲(chǔ)過程、觸發(fā)器等。與業(yè)務(wù)邏輯層和用戶界面分開,易于管理和維護(hù),執(zhí)行效率高,安全性能好。框架提供了和命名空間,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫連接字符串為連接數(shù)據(jù)庫提供必要的參數(shù),通常保存在配置文件中,以簡(jiǎn)化代碼實(shí)現(xiàn)和便于部署。應(yīng)用中對(duì)數(shù)據(jù)庫的操作頻繁,通常情況下把對(duì)數(shù)據(jù)庫的各種操作集成在一個(gè)數(shù)據(jù)庫操作類中,在需要進(jìn)行數(shù)據(jù)庫操作的地方只需調(diào)用此類的各種方法即可。

13、一般在數(shù)據(jù)的后臺(tái)管理上,采用了傳輸構(gòu)架,保持客戶端與服務(wù)器的開放連接,以便進(jìn)行較長(zhǎng)時(shí)間的、較復(fù)雜的會(huì)話。而表單是頁的基本輸入機(jī)制,包括、和呦等輸入元素,用“構(gòu)造型進(jìn)行建模??蚣苁且环N基于通用語言的編程框架,提供了嶄新的編程模型:模型和模型,提供了完善的基礎(chǔ)類庫、數(shù)據(jù)庫訪問技術(shù)和網(wǎng)絡(luò)開發(fā)技術(shù),為應(yīng)用的開發(fā)提供了強(qiáng)有力的支持??蚣芴峁┝碎_發(fā)模型,利用內(nèi)嵌的各種服務(wù)器組件來生成服務(wù)器端頁,包含用戶控件或者白定義控件等一些重要的頁面元素。總之,系統(tǒng)建模對(duì)軟件開發(fā)過程相當(dāng)重要,的擴(kuò)展機(jī)制為應(yīng)用系統(tǒng)的建模提供了必要的支持,框架為系統(tǒng)開發(fā)提供了很好的解決方案。以上通過商業(yè)應(yīng)用系統(tǒng)建模的用例分析,闡述了結(jié)構(gòu)化

14、分析方法建模的具體過程,用時(shí)序圖描述用例的實(shí)現(xiàn)及系統(tǒng)架構(gòu)沒計(jì),分析研究了評(píng)價(jià)系統(tǒng)的數(shù)據(jù)處理過程及數(shù)據(jù)庫的基本操作。系統(tǒng)采用和技術(shù)建模和利用關(guān)鍵技術(shù)訪問數(shù)據(jù)庫有明顯的優(yōu)勢(shì),使系統(tǒng)在分析計(jì)階段,就能嚴(yán)格把握軟件的質(zhì)量,提高軟件的可靠性,使系統(tǒng)在性能和功能上都具有可規(guī)模化和可重用性,能夠形成大規(guī)模協(xié)同工作的軟件系統(tǒng)群體。參考文獻(xiàn):【】殷人昆軟件工程】北京:高等教育出版社,【:勇,丁峰,沈鈞毅基于的應(yīng)用系統(tǒng)建模方法的研究【】計(jì)算機(jī)工程與應(yīng)用,()【】李高林,姜昱明在基于的電子商務(wù)應(yīng)用中利用建模與開發(fā)技術(shù)【】計(jì)算機(jī)應(yīng)用研究,()(責(zé)任編校:何俊華)(上接頁)系統(tǒng)中內(nèi)存資源有限,所以需要優(yōu)化數(shù)據(jù)結(jié)構(gòu),減少

15、對(duì)內(nèi)存的占用;提高效率:因?yàn)槲臋n中的每一個(gè)標(biāo)記都要從樣式表規(guī)則中查找與其相匹配的樣式,因此優(yōu)化匹配和查找算法也是一個(gè)關(guān)鍵問題??偨Y(jié)本文對(duì)嵌入式瀏覽器的整體設(shè)計(jì)做了一個(gè)說明,并詳細(xì)講解了瀏覽器中解析模塊的設(shè)計(jì),以及技術(shù)在嵌入式瀏覽器中的實(shí)現(xiàn)問題。本嵌入式瀏覽器在大量的較標(biāo)準(zhǔn)的網(wǎng)頁數(shù)據(jù)測(cè)試中能夠正確地良好地解析顯示網(wǎng)頁,對(duì)于容錯(cuò)性方面也還存在一些問題,所以在數(shù)據(jù)的播發(fā)前端,我們?cè)O(shè)計(jì)了一個(gè)查錯(cuò)軟件,當(dāng)文檔中包含非常嚴(yán)重的語法錯(cuò)誤時(shí),則不準(zhǔn)進(jìn)行流打包。參考文獻(xiàn):【】李小群,鄭良辰,耿增強(qiáng),等淺析嵌入式系統(tǒng)中的瀏覽器【】測(cè)控技術(shù),():【】周正勇,陽富民,胡貫榮一種嵌入式瀏覽器的核心技術(shù)及特色叨計(jì)算機(jī)工程與設(shè)計(jì),():【】黃斯偉,等完全使用詳解】北京:人民郵電出版社,(責(zé)任編校:何俊華)(,):,;,():; 一種嵌入式瀏覽器中的HTML解析器的設(shè)計(jì)作者:唐云, TANG Yu作者單位:湖南科技學(xué)院,電子信息工程與物理系,湖南,永州,425100刊名:湖南科技學(xué)院學(xué)報(bào)英文刊名:JOURNAL OF HUN

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論