![《Web編程基礎》課件第10章 運用DOM處理XML_第1頁](http://file4.renrendoc.com/view14/M01/2F/1D/wKhkGWdlDkWAcu9BAAOt6hVBKS0744.jpg)
![《Web編程基礎》課件第10章 運用DOM處理XML_第2頁](http://file4.renrendoc.com/view14/M01/2F/1D/wKhkGWdlDkWAcu9BAAOt6hVBKS07442.jpg)
![《Web編程基礎》課件第10章 運用DOM處理XML_第3頁](http://file4.renrendoc.com/view14/M01/2F/1D/wKhkGWdlDkWAcu9BAAOt6hVBKS07443.jpg)
![《Web編程基礎》課件第10章 運用DOM處理XML_第4頁](http://file4.renrendoc.com/view14/M01/2F/1D/wKhkGWdlDkWAcu9BAAOt6hVBKS07444.jpg)
![《Web編程基礎》課件第10章 運用DOM處理XML_第5頁](http://file4.renrendoc.com/view14/M01/2F/1D/wKhkGWdlDkWAcu9BAAOt6hVBKS07445.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目標-1-了解DOM的概念了解DOM處理XML的優(yōu)勢掌握DOM的文檔結構了解XPath的特點和結構掌握XPath的數(shù)據(jù)類型和節(jié)點間的關系掌握XPath表達式及應用掌握XPath定位路徑的使用了解JDOM的概念和基本結構掌握JDOM的常用API掌握使用JDOM處理XML的基本步驟-2-文檔對象模型概述XMLDOM是XMLDocumentObjectModel的縮寫,即XML文檔對象模型。使用DOM處理XML有以下幾點優(yōu)越性:DOM能夠保證XML文檔的語法正確和格式正規(guī);DOM能夠從語法中提取內容;DOM能夠簡化內部文檔操作;DOM能夠貼切地反映典型的層次數(shù)據(jù)庫和關系數(shù)據(jù)庫的結構.-3-DOM文檔結構在DOM中,將XML邏輯結構描述成樹。XML中共有12種節(jié)點類型,常見的節(jié)點類型有:文檔元素文本屬性注釋DOM對象的層次-4-XPathXPath就是一種專門用來在XML文檔中定位和查找信息的語言,通過XPath可對XML文檔中的元素和屬性進行遍歷,是高級XML應用的基礎。XPath主要有四種數(shù)據(jù)類型:節(jié)點集布爾類型字符串類型數(shù)值類型在XPath中,可以將節(jié)點劃分為七種節(jié)點類型:根節(jié)點(RootNode)元素節(jié)點(ElementNodes)文本節(jié)點(TextNodes)屬性節(jié)點(AttributeNodes)命名空間節(jié)點(NamespaceNodes)處理指令節(jié)點(ProcessingInstructionNodes)注釋節(jié)點(CommentNodes)-5-XPathXPath節(jié)點關系:父(parent)子(children)同胞(sibling)先輩(ancestor)后代(descendant)bookstore示例<?xmlversion="1.0"encoding="GB2312"?><bookstore> <book> <titlelang="en">RESTfulWebServices</title> <author>LeonardRichardson</author> <year>2007</year> <price>29.00</price> </book></bookstore>-6-XPath表達式XPath將XML文檔看作由節(jié)點構成的層次樹,通過編寫XPath表達式來定位樹中特定的節(jié)點XPath路徑表達式:“/”代表這是絕對路徑,表示當前文檔的根節(jié)點“//”則表示相對路徑,表示當前文檔所有的節(jié)點表達式描述nodename選取此節(jié)點的所有子節(jié)點/從根節(jié)點選取//從任意節(jié)點選取.選取當前節(jié)點..選取當前節(jié)點的父節(jié)點@選取屬性-7-XPath表達式實例講解<?xmlversion="1.0"encoding="GB2312"?><bookstore> <book> <titlelang="en">RESTfulWebServices</title> <price>29.00</price> </book> <book> <titlelang="zh">Java編程基礎</title> <price>46.00</price> </book></bookstore>bookstore
選取bookstore元素的所有子節(jié)點/bookstore選取根節(jié)點bookstore元素/bookstore/book/price選取bookstore元素下所有book元素的所有price元素/bookstore/book/*選取/bookstore/book的所有子元素bookstore/book選取bookstore元素下所有的book子元素//bookstore選取文檔中所有的bookstore元素,無論它在什么層次bookstore//book選取在bookstore元素下所有的book元素,無論它們位于bookstore之下的什么位置/bookstore/*/price選取bookstore的子元素中,包含有price作為子元素的元素//*選取文件中的所有元素//@lang選取所有名為lang的屬性-8-XPath表達式實例講解XPath謂語表達式實例
如果需要選擇一個以上的路徑,可以在XPath表達式中使用“|”運算符路徑表達式描述/bookstore/book[last()]選取屬于bookstore子元素的最后一個book元素/bookstore/book[last()-1]選取屬于bookstore子元素的倒數(shù)第二個book元素/bookstore/book[position()<3]選取前兩個屬于bookstore元素的子元素的book元素//title[@lang]選取所有擁有名為lang的屬性的title元素//title[@lang="en"]選取所有title元素,且這些元素擁有值為eng的lang屬性/bookstore/book[price>15.00]選取所有bookstore元素的book元素,且其中的price元素的值須大于15.00/bookstore/book[price>15.00]/title選取所有bookstore元素中的book元素的title元素,且其中的price元素的值須大于15.00//title[@*]選取所有帶有屬性的title元素路徑表達式描述//book/title|//book/price選取所有book元素的title和price元素//title|//price選取文檔中所有的title和price元素/bookstore/book/title|//price選取所有屬于bookstore元素的book元素的title元素,以及文檔中所有的price元素-9-XPath表達式實例講解XPath表達式的運算符可以使用常規(guī)的算術運算符、關系運算符、邏輯運算符等,常用的運算符:示例:10.1bookstore.xml和bookstore.html運算符描述實例|計算兩個節(jié)點集//book|//cd,返回所有帶有book和cd元素的節(jié)點集+加法6+4,-減法6-4*乘法6*4div除法8div4=等于price=15!=不等于price!=15<小于price<15<=小于或等于price<=15>大于price>15>=大于或等于price>=15or或price=15orprice=35and與price>15orprice<35mod計算除法的余數(shù)5mod2-10-XPath定位路徑定位步驟從左到右,依次按順序計算XPath的定位步驟的語法如下:
其中:軸(axis),定義某個相對于當前節(jié)點的節(jié)點集。節(jié)點測試(node-test),識別某個軸內部的節(jié)點謂語(predicate),零或多個預測,以更深入地提煉所選的節(jié)點集示例代碼:XPath定位路徑表達式將會返回一個節(jié)點集。定位路徑可以是絕對的或相對的
軸名::節(jié)點測試[謂語]child::price[price=9.90]-11-XPath定位路徑軸名稱描述ancestor選取當前節(jié)點的所有先輩ancestor-or-self選取當前節(jié)點的所有先輩以及當前節(jié)點本身attribute選取當前節(jié)點的所有屬性child選取當前節(jié)點的所有子元素descendant選取當前節(jié)點的所有后代元素descendant-or-self選取當前節(jié)點的所有后代元素以及當前節(jié)點本身following選取文檔中當前節(jié)點的結束標簽之后的所有節(jié)點namespace選取當前節(jié)點的所有命名空間節(jié)點parent選取當前節(jié)點的父節(jié)點preceding選取文檔中當前節(jié)點的開始標簽之前的所有節(jié)點preceding-sibling選取當前節(jié)點之前的所有同級節(jié)點self選取當前節(jié)點XPath的軸名稱示例:表10-7和表10-8-12-XML的解析方式解析XML文檔主要有兩種方式:DOM方式
DOM是文檔驅動的解析方式。解析器會讀入整個XML文檔,然后在內存中構造一棵完整的DOM樹形結構。SAX方式
SAX(SimpleAPIforXML,XML簡單API)是事件驅動的解析方式。當解析器發(fā)現(xiàn)元素開始、元素結束、文本、文檔的開始或結束等情況時,會觸發(fā)相應的事件,開發(fā)者可以通過編寫響應這些事件的代碼來保存數(shù)據(jù)。-13-解析XML的APIW3CDOM使用DOM方式可以方便的操作整個XML文檔,W3C發(fā)布了針對DOM方式的一組Java接口,其中規(guī)范了以DOM方式操作XML文檔的方法。SAXSAX的API是一個社區(qū)規(guī)范。這個API中規(guī)定了以SAX方式解析XML文檔的事件和方法JAXPJAXP是SUN公司推出的一套輕量級的包裝器API,是Java操作XML的標準規(guī)范。JDOMJDOM是一個開源的XML解析類庫,其提供了一種基于Java的特定文檔對象模型。DOM4JDOM4J是一個開源的XML解析類庫,提供了一種基于Java的特定文檔對象模型,并且也提供對W3CDOM、SAX和JAXP的支持。-14-JAXPJAXP(JavaAPIforXMLParsing)沒有重新定義DOM和SAX,其提供一種機制可以通過即插即用接口在Java應用程序中訪問解析器JAXP的工作方式:JAXP實例
示例10.2:JAXPDemo.java-15-JavaDOM的APIDocumentBuilderFactory類DocumentBuilder類DocumentNodeNodeListElementAttr-16-JDOM概述JDOM是一個開源的、專為Java語言提供XML解析功能的項目,基于樹型結構,利用純Java的技術對XML文檔實現(xiàn)解析、生成、序列化以及多種操作,利用Java語言把SAX和DOM的功能有效地結合起來JDOM結構圖-17-JDOM的APIJDOM中的常用類主要包括:SAXBuilderDOMBuilderDocumentXMLOutPutterElementAttribute類-18-JDOM編程JDOM與DOM和SAX不同,需要訪問JDOM項目站點,并下載最新版本的JDOM工具包。JDOM編程示例:創(chuàng)建XML文檔
示例:10.3JDOMCreate.java遍歷XML文檔
示例:10.4JDOMRead.java小結-19-XMLDOM是XMLDocumentObjectModel的縮寫DOM定義了訪問和處理XML文檔的標準方法在DOM中,將XML邏輯結構描述成樹(DOM樹)XML中共有12種節(jié)點類型,其中最常見的節(jié)點類型有5種:文檔、元素、屬性、文本和注釋對XPath的理解是很多高級XML應用的基礎XPath可以用于XSLT樣式表內來定位XML樹中的某個位置XPath表達式由左至右讀取,路徑中的各個點由一個前向斜杠(/)分隔XPath主要有四種數(shù)據(jù)類型:節(jié)點集、布爾類型、數(shù)值類型、字符串XPath中,節(jié)點之間的關系有父、子、同胞、先輩、后代XPath使用路徑表達式在XML文檔中選取節(jié)點,并可以使用謂語查找某個特定的節(jié)點或者包含某個值的節(jié)點小結-20-DOM是文檔驅動的,不適于處理大型XML文件目前主要有四種XML解析器:DOM、SAX、J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度工作室職員健康管理與福利合同
- 2025年度文化用品定制生產與銷售合同
- 2025年度剪輯師參與綜藝節(jié)目制作服務合同
- 2025年度智能果皮箱與垃圾回收車聯(lián)動服務合同
- 2025年度企業(yè)對外宣傳與公關合作合同
- 2025年度教育培訓機構代理銷售合同范本
- 2025年度智能攪拌站自動化升級改造合同
- 2025年度公積金貸款合同貸款合同簽訂與備案流程規(guī)范
- 2025年工地水電設施安裝與調試服務合同樣本
- 2025年度建筑圍墻施工安全責任保險合同
- 初中英語人教版 八年級上冊 單詞默寫表 漢譯英
- pcs-9611d-x說明書國內中文標準版
- 無人機航拍技術理論考核試題題庫及答案
- T∕CMATB 9002-2021 兒童肉類制品通用要求
- 工序勞務分包管理課件
- 工藝評審報告
- 中國滑雪運動安全規(guī)范
- 畢業(yè)論文-基于51單片機的智能LED照明燈的設計
- 酒廠食品召回制度
- 中職數(shù)學基礎模塊上冊第一章《集合》單元檢測試習題及參考答案
- 化學魯科版必修一期末復習98頁PPT課件
評論
0/150
提交評論