版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、XML技術(shù)基礎(chǔ),主講:蔡體健,第六章 XML高級語法,引言,XQuery、XLink、XPointer和XSLT都依賴于XPath進(jìn)行數(shù)據(jù)定位。 XQuery是用于XML 數(shù)據(jù)查詢的語言,用來從 XML文檔查找和提取元素及屬性的語言。 XQuery通過為 XPath返回的節(jié)點(diǎn)增加選擇條件來實現(xiàn)復(fù)雜的查詢工作。XPath是XQuery的一個句法子集。 XSLT和XQuery兩者功能相當(dāng),都基于同一基礎(chǔ):Xpath,都專用于操作 XML 文檔,都借用腳本概念。 XSLT側(cè)重于轉(zhuǎn)換,而XQuery側(cè)重于查詢。 XLink和XPointer是可擴(kuò)展鏈接語言的兩個重要的部分。XLink可實現(xiàn)一個文檔與另
2、一文檔的鏈接。在XLink文檔鏈接的基礎(chǔ)上,XPointer可以鏈接到XML文檔的細(xì)節(jié)部分,本課目標(biāo),小結(jié),XPATH路徑,XPATH路徑簡介 XPATH基本概念 XPATH定位路徑 軸 節(jié)點(diǎn)測試 謂詞 定位路徑簡寫 XPATH函數(shù) XSL中的XPATH路徑示例,返回本課目標(biāo),XPATH路徑簡介,XSL的基本元素語句的select/match/test等屬性通常把XPath表達(dá)式當(dāng)作屬性值 XPath是一種高效的定位XML文檔的指定位置的定位技術(shù)。 XPath 可用來在 XML 文檔中對元素和屬性進(jìn)行遍歷。 XPath 是 W3C XSLT 標(biāo)準(zhǔn)的主要元素,并且 XQuery 和 XPoint
3、er 同時被構(gòu)建于 XPath 表達(dá)式之上。因此,對 XPath 的理解是很多高級 XML 應(yīng)用的基礎(chǔ)。 XPath1.0 于1999年11月16日成為 W3C 推薦標(biāo)準(zhǔn),Xpath 2.0是在 2007年1月23日被確立為 W3C 推薦標(biāo)準(zhǔn)。但在當(dāng)前瀏覽器環(huán)境中Xpath 2.0是不被廣泛支持的。因此本書主要介紹Xpath 1.0。,XPATH路徑簡介,在XSLT中的XPATH路徑 ,返回XPATH,XPATH基本概念,XPath將一個XML文檔看成一棵樹,文檔中的每一個部分都對應(yīng)樹上的一個節(jié)點(diǎn)。 節(jié)點(diǎn)的類型 XPath節(jié)點(diǎn)類型:根(唯一的)、元素、屬性、文本、注釋、處理指令、DTD聲明。除
4、根節(jié)點(diǎn)外的其他節(jié)點(diǎn)都有一個父節(jié)點(diǎn),父節(jié)點(diǎn)可以有任意多個子節(jié)點(diǎn)或派生的節(jié)點(diǎn)。 子節(jié)點(diǎn)的類型只能是元素、注釋、文本和處理指令節(jié)點(diǎn)類型。盡管屬性或名空間節(jié)點(diǎn)的父節(jié)點(diǎn)可以是元素或根結(jié)點(diǎn),但屬性或名空間節(jié)點(diǎn)不是其父節(jié)點(diǎn)的子節(jié)點(diǎn)。父節(jié)點(diǎn)和子節(jié)點(diǎn)是一種包含關(guān)系,而屬性節(jié)點(diǎn)和名空間節(jié)點(diǎn)是一種描述。 結(jié)構(gòu)樹從根節(jié)點(diǎn)開始,用“/”表示。根節(jié)點(diǎn)不是根元素。,XPATH基本概念,XPath的數(shù)據(jù)類型 XPath路徑是字符串表達(dá)式 運(yùn)行表達(dá)式后產(chǎn)生4種數(shù)據(jù)類型:節(jié)點(diǎn)集、布爾值、字符串和數(shù)值。,XPATH基本概念,XPath的運(yùn)算符,邏輯非采用函數(shù)表示法not(),返回XPATH,XPATH定位路徑,定位路徑是一個XPA
5、TH字符串表達(dá)式,用于在XPath樹中從一個節(jié)點(diǎn)跳轉(zhuǎn)到另一個節(jié)點(diǎn)。 定位路徑是由若干個定位步(step)組成,其形式為:“step1/step2/” 絕對路徑:/唐詩/五言絕句 相對路徑:唐詩/五言絕句 每一個完整的定位步都由一個軸、節(jié)點(diǎn)測試、謂詞組成。形式為:軸名稱:節(jié)點(diǎn)測試謂詞 例如:child:studentattribute:ID=101,軸,軸規(guī)定了定位步選擇的節(jié)點(diǎn)和當(dāng)前基準(zhǔn)節(jié)點(diǎn)之間的關(guān)系。分為順序軸和逆序軸 順序軸選擇XML文檔中跟在基準(zhǔn)節(jié)點(diǎn)后的節(jié)點(diǎn); 逆序軸選擇XML文檔中跟在基準(zhǔn)節(jié)點(diǎn)前的節(jié)點(diǎn); 軸(Axis)幫助我們選擇當(dāng)前節(jié)點(diǎn)周圍所有的節(jié)點(diǎn),軸,注意: ancestor,de
6、scendant,following,preceding 以及 self 軸劃分了一個文檔(忽略屬性和命名空間節(jié)點(diǎn))。:他們相互不重疊,而且他們組在一起則包含了文檔所有的節(jié)點(diǎn)。,ancestor,descendant,preceding,following,self,self,following,descendant,preceding,ancestor,preceding-sibling,通過XMLSPY軟件驗證XPATH路徑, 李華 男 1978.9.12 92 倪冰 女 1979.1.12 89 張君寶 男 1982.9.9 98 ,表達(dá)式:/roster/student2/name 結(jié)
7、果:倪冰,表達(dá)式: /roster/student2/ following-sibling:* 結(jié)果: ,表達(dá)式: /roster/student2/ following:* 結(jié)果: 張君寶 男 1982.9.9 98,當(dāng)前節(jié)點(diǎn),返回XPATH,節(jié)點(diǎn)測試,軸從文檔樹中選擇一組節(jié)點(diǎn),節(jié)點(diǎn)測試可以識別某個軸內(nèi)部的節(jié)點(diǎn),可以在軸所選取的節(jié)點(diǎn)集中做進(jìn)一步的篩選。 節(jié)點(diǎn)測試依賴于在文檔樹中選擇節(jié)點(diǎn)的軸的主節(jié)點(diǎn)類型。每個軸都有一個主節(jié)點(diǎn)類型。如果軸能包含元素,主節(jié)點(diǎn)類型則是元素;否則,它的類型是軸能包含的節(jié)點(diǎn)的類型。因此, 對於屬性軸來說,主節(jié)點(diǎn)類型是屬性。 對於命名空間軸,主節(jié)點(diǎn)類型是命名空間。 對於其
8、它的軸,主節(jié)點(diǎn)類型是元素。 跟軸的主節(jié)點(diǎn)類型有關(guān)的節(jié)點(diǎn)測試有“*”,“*”選擇的是與軸的主節(jié)點(diǎn)類型相同的所有節(jié)點(diǎn) ,例如:child:*,節(jié)點(diǎn)測試,例題:針對student6.1.xml文檔 /roster/student2/child:node() /roster/student2/child:* /roster/student2/child:text() /roster/student2/child:name,返回XPATH,謂詞,根據(jù)軸和節(jié)點(diǎn)測試得到初始節(jié)點(diǎn)組后可以由謂詞來做進(jìn)一步的過濾。 謂詞(Predicate)則用來定位當(dāng)前節(jié)點(diǎn)內(nèi)部的元素。表示方法為方括號 中加表達(dá)式: Expre
9、ssion 在對初始節(jié)點(diǎn)集合中的每個節(jié)點(diǎn)進(jìn)行選擇過濾時,根據(jù)該節(jié)點(diǎn)在集合中的位置判斷謂詞表達(dá)式,當(dāng)表達(dá)式為真時選擇該節(jié)點(diǎn),否則不選擇。例如: ,返回XPATH,定位路徑的簡寫,Child軸經(jīng)常被省略例student等同于child:student 屬性軸:例:ID等同于attribute:ID /分離定位步,也表示根節(jié)點(diǎn) /descendant-or-self:node()/簡寫成/ 基準(zhǔn)節(jié)點(diǎn)self:node()簡寫成 .例:.=元素內(nèi)容 父節(jié)點(diǎn)parent:node()簡寫成 . 合并兩個節(jié)點(diǎn)集 如:head|body 表示:選擇包含head元素節(jié)點(diǎn)和body元素節(jié)點(diǎn)的所有節(jié)點(diǎn)。,返回XP
10、ATH,XPath函數(shù),XPath使用定位路徑從一個XML文檔樹中選擇一組節(jié)點(diǎn)。XPath定位路徑可以使用函數(shù)進(jìn)行更精確的定位 常用于條件匹配的函數(shù)有四大類: 節(jié)點(diǎn)函數(shù) ID(字符串)、name(node-set?) 、 last() 、count(node-set) 、position() 字符串函數(shù) string(object)、concat(string,string)、starts-with(string, string) 、normalize-space(string?) 、 contains(string, string) 數(shù)值函數(shù) sum()、round(number) 布爾函數(shù) not(boolean) 、true(),XPATH VIEWER,舉例,舉例,舉例,返回
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年成都業(yè)余無線電考試題庫及答案
- 2025年標(biāo)準(zhǔn)水運(yùn)公路安全員考試題庫及答案
- 2026遼漁集團(tuán)校招試題及答案
- 2026遼寧水資源管理和生態(tài)環(huán)保產(chǎn)業(yè)集團(tuán)校招面試題及答案
- 小學(xué)數(shù)學(xué)七巧板拼搭中的空間想象能力培養(yǎng)與問題解決能力的關(guān)聯(lián)研究教學(xué)研究課題報告
- 高中物理追及相遇問題深度解析
- 初中生物教學(xué)中生物多樣性保護(hù)教育策略課題報告教學(xué)研究課題報告
- 2026年理解電氣安全規(guī)范的重要性
- 2025年智能家居行業(yè)用戶體驗創(chuàng)新與趨勢報告
- 2026年橋梁施工技術(shù)及其管理措施
- 游戲公司運(yùn)營風(fēng)險控制預(yù)案
- 山東省臨沂市2024-2025學(xué)年高二數(shù)學(xué)上學(xué)期期中試題
- DZ∕T 0248-2014 巖石地球化學(xué)測量技術(shù)規(guī)程(正式版)
- JTJ-T-257-1996塑料排水板質(zhì)量檢驗標(biāo)準(zhǔn)-PDF解密
- 殘疾人法律維權(quán)知識講座
- 瀝青維護(hù)工程投標(biāo)方案技術(shù)標(biāo)
- 水電站建筑物課程設(shè)計
- 兒童行為量表(CBCL)(可打印)
- 硒功能與作用-課件
- 《英語教師職業(yè)技能訓(xùn)練簡明教程》全冊配套優(yōu)質(zhì)教學(xué)課件
- DB53∕T 1034-2021 公路隧道隱蔽工程無損檢測技術(shù)規(guī)程
評論
0/150
提交評論