




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第18章Web網(wǎng)絡(luò)編程本章內(nèi)容18.1XML編程基礎(chǔ)18.2XML語法基礎(chǔ)18.3Python解析XML18.4XDR數(shù)據(jù)交換格式18.5JSON數(shù)據(jù)解析18.6Python解析HTML18.1XML編程基礎(chǔ)
18.1.1XPath簡介18.1.2XSLT簡介18.1.1XPath簡介XPath主要用于對(duì)XML文檔元件尋址。XPath將一個(gè)XML文檔建模成為一棵節(jié)點(diǎn)樹,有不同類型的節(jié)點(diǎn),包括元素節(jié)點(diǎn)、屬性節(jié)點(diǎn)和正文節(jié)點(diǎn)。XPath定義了一種方法來計(jì)算每類節(jié)點(diǎn)的字串值。一些節(jié)點(diǎn)的類型也有名字。XPath充分支持XML命名空間。這樣,節(jié)點(diǎn)的名字被建模成由一個(gè)局域部分和可能為空的命名空間URI組成的對(duì),這被稱為擴(kuò)展名。1.XPath節(jié)點(diǎn)2.位置路徑18.1.2XSLT簡介XSLT是由XSL(ExtensibleStylesheetLanguage)發(fā)展而來的,XSLT是一種基于XML的語言,用于將一類XML文檔轉(zhuǎn)換成另一種XML文檔。XSLT實(shí)際上就是XML文檔類的一個(gè)規(guī)范,即XSLT本身是格式正確的XML文檔,并帶有一些專門的內(nèi)容,可以讓開發(fā)者或用戶“模塊化”自己所期望的輸出格式。XSLT的作用是將來源XML元素轉(zhuǎn)換成用戶所期望的格式文件中的元素,所以與其他語言不同,它是一種模板驅(qū)動(dòng)的轉(zhuǎn)換腳本。其實(shí)現(xiàn)過程是把模板提供給XSLT處理器,并指明在進(jìn)行轉(zhuǎn)換時(shí)何時(shí)何地使用模板。在模板中,可以加入指令,以告訴處理器從一個(gè)或多個(gè)源文件中自行搜索信息,并插入模板中的空位。18.2XML語法基礎(chǔ)18.2.1XML的基本應(yīng)用18.2.2XML文檔組成和聲明18.2.3XML元素介紹18.2.1XML的基本應(yīng)用隨著因特網(wǎng)發(fā)展,為了控制網(wǎng)頁顯示樣式,就增加了一些描述如何顯現(xiàn)數(shù)據(jù)的標(biāo)記,例如<center>、<b>等標(biāo)記。但隨著HTML的不斷發(fā)展,W3C組織意識(shí)到HTML存在了一些無法避免的問題。⑴不能解決所有解釋數(shù)據(jù)的問題,例如影音文件或化學(xué)公式、音樂符號(hào)等其他型態(tài)的內(nèi)容。⑵效能問題,需要下載整份文件,才能開始對(duì)文件做搜尋的動(dòng)作。⑶擴(kuò)充性、彈性、易讀性均不佳。18.2.2XML文檔組成和聲明18.2.3XML元素介紹元素是以樹形分層結(jié)構(gòu)排列的,它可以嵌套在其他元素中。1.元素類別2.元素命名規(guī)范3.元素嵌套4.元素實(shí)例18.3Python解析XML18.3.1使用SAX解析XML18.3.2使用DOM解析XML18.3.1使用SAX解析XML
python標(biāo)準(zhǔn)庫包含(simpleAPIforXML)SAX解析器,SAX是一種基于事件驅(qū)動(dòng)的API,通過在解析XML的過程中觸發(fā)一個(gè)個(gè)的事件,然后調(diào)用用戶定義的回調(diào)函數(shù)來處理XML文件。使用SAX解析XML文檔主要包括兩部分:解析器和事件處理器。其中解析器負(fù)責(zé)讀取XML文檔,并向事件處理器發(fā)送事件,如元素開始跟元素結(jié)束事件;而事件處理器則負(fù)責(zé)調(diào)出相應(yīng)的事件,對(duì)傳遞的XML數(shù)據(jù)進(jìn)行處理。18.3.2使用DOM解析XML文件對(duì)象模型(DocumentObjectModel,簡稱DOM),是W3C組織推薦的處理可擴(kuò)展置標(biāo)語言的標(biāo)準(zhǔn)編程接口。DOM將XML數(shù)據(jù)在內(nèi)存中解析成一個(gè)樹,通過對(duì)樹的操作來操作XML。一個(gè)DOM的解析器在解析一個(gè)XML文檔時(shí),一次性讀取整個(gè)文檔,把文檔中所有元素保存在內(nèi)存中的一個(gè)樹結(jié)構(gòu)里,之后可以利用DOM提供的不同的函數(shù)來讀取或修改文檔的內(nèi)容和結(jié)構(gòu),也可以把修改過的內(nèi)容寫入xml文件。18.4XDR數(shù)據(jù)交換格式XDR(eXternalDataRepresentation,外部數(shù)據(jù)表示)是數(shù)據(jù)描述與編碼的標(biāo)準(zhǔn),它使用隱含形態(tài)的語言來正確地描述復(fù)雜的數(shù)據(jù)格式。SunRPC(RemoteProcedureCall,遠(yuǎn)程過程調(diào)用)與NFS(NetworkFileSystem,網(wǎng)絡(luò)文件系統(tǒng))等協(xié)議,都使用XDR來描述它們的數(shù)據(jù)格式,因?yàn)閄DR適合在不同的計(jì)算機(jī)結(jié)構(gòu)之間傳輸數(shù)據(jù)。Python語言通過提供的xdrlib模塊來處理XDR數(shù)據(jù),在網(wǎng)絡(luò)應(yīng)用程序上的應(yīng)用非常廣泛。xdrlib模塊定義中定義了Packer類和Unpacker類,另外還定義了兩個(gè)異常。1.Packer類2.Unpacker類18.5JSON數(shù)據(jù)解析JSON(JavaScriptObjectNotation)是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript的一個(gè)子集。Python中提供了json模塊來對(duì)JSON數(shù)據(jù)進(jìn)行編碼和解碼。json模塊中包含了以下兩個(gè)函數(shù):⑴json.dumps():對(duì)數(shù)據(jù)進(jìn)行編碼。⑵json.loads():對(duì)數(shù)據(jù)進(jìn)行解碼。18.6Python解析HTMLPython使用urllib包抓取網(wǎng)頁后,需要將抓取到的數(shù)據(jù)交給HTMLParser解析,從而提取出需要的內(nèi)容。Python提供了一個(gè)簡單的解析模塊HTMLParser類,使用起來也是比較簡單,特別是新手用起來比較容易。HtmlParser是一個(gè)類,在使用時(shí)一般繼承它然后重載它的方法,來達(dá)到解析出需要的數(shù)據(jù)的目的。HtmlParser類的常用方法如下:⑴handle_starttag(tag,attrs):處理開始標(biāo)簽,比如<div>;這里的attrs獲取到的是屬性列表,屬性以元組的方式展示。⑵handle_endtag(tag):處理結(jié)束標(biāo)簽,比如</div>。⑶handle_
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 零售商業(yè)銷售額對(duì)比分析表
- 廣東省深圳市寶安區(qū)2024-2025學(xué)年高二上學(xué)期1月期末調(diào)研測試生物學(xué)試題(含答案)
- 公司季度發(fā)展調(diào)研報(bào)告分析
- 采購成本預(yù)算表格
- 電子競技產(chǎn)業(yè)投資合作協(xié)議
- 智能安防系統(tǒng)合作協(xié)議
- 高科技產(chǎn)業(yè)園建設(shè)投資合同
- 大型企業(yè)采購管理優(yōu)化合作協(xié)議
- 生物學(xué)中的細(xì)胞生物學(xué)練習(xí)題集
- 新員工快速上手工作指南
- 柴進(jìn)的五個(gè)故事
- 瓜州橋?yàn)车谝伙L(fēng)電場200mw工程可行性研究報(bào)告
- 耳鼻咽喉頭頸外科學(xué):耳科學(xué)
- 2023年空置房管理辦法4篇
- 中考英語現(xiàn)在完成時(shí)專項(xiàng)練習(xí)題及答案學(xué)習(xí)啊
- 電子設(shè)備裝接工常用工具及材料
- 語言學(xué)綱要(全套課件354P)
- 2023年嘉興市青少年信息學(xué)(計(jì)算機(jī))競賽(小學(xué)組)試卷
- 2022年江西司法警官職業(yè)學(xué)院單招綜合素質(zhì)試題及答案解析
- M6000-BRAS業(yè)務(wù)配置及日常維護(hù)
- 斜拉橋主橋監(jiān)理細(xì)則
評(píng)論
0/150
提交評(píng)論