可擴(kuò)展路徑語言XPath_第1頁
可擴(kuò)展路徑語言XPath_第2頁
可擴(kuò)展路徑語言XPath_第3頁
可擴(kuò)展路徑語言XPath_第4頁
可擴(kuò)展路徑語言XPath_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、主要內(nèi)容:lXpath的基本概念lXpath的函數(shù)一、什么Xpath 在XML樹的轉(zhuǎn)換過程中需要用到XPath按照W3C在XPath規(guī)范中的解釋,XPath是在XSLT中用作對(duì)XML文檔各部分進(jìn)行定位的語言。ll ll l ll llgetX() 5 & value0!=3) l cerr displayError();lll lC+ How to program by Deitel &Deitell 上面XML文檔含有根節(jié)點(diǎn)、注釋節(jié)點(diǎn)、元素節(jié)點(diǎn)、屬性節(jié)點(diǎn)、文本節(jié)點(diǎn)等。圖8-1 Xpath的定位和XSLT的轉(zhuǎn)換 Xml源文檔 Xpath定位節(jié)點(diǎn)和XSLT 轉(zhuǎn)換XML結(jié)果

2、文檔 XPath把一個(gè)XML文檔看成一個(gè)樹,每一個(gè)XML的部位(如元素、屬性或文本等)均可看作XML文檔樹的某一個(gè)節(jié)點(diǎn)。相應(yīng)的節(jié)點(diǎn)類型也有多種,包括元素節(jié)點(diǎn)、屬性節(jié)點(diǎn)和文本節(jié)點(diǎn)等。 XPath所提供的功能主要就是如何在XML文檔樹上定位這些節(jié)點(diǎn)。當(dāng)在XML文檔樹上找到了與要求相匹配的節(jié)點(diǎn)時(shí),通過XSLT將源文檔中的匹配部分轉(zhuǎn)換成結(jié)果文檔。二、表達(dá)式和定位路徑 XPath的基本語法由表達(dá)式構(gòu)成。在XPath通過計(jì)算表達(dá)式的值產(chǎn)生一個(gè)對(duì)象,該對(duì)象的取值為以下四種基本類型之一。l節(jié)點(diǎn)集合;l布爾型;l數(shù)字型;l字符串型。 一類重要的表達(dá)式是定位路徑。表達(dá)式計(jì)算的結(jié)果是定位路徑從上下文節(jié)點(diǎn)中選擇的相關(guān)

3、節(jié)點(diǎn)的集合。 定位路徑有兩類:l相對(duì)定位路徑l絕對(duì)定位路1、相對(duì)定位路徑:由一個(gè)或多個(gè)定位階組成,其中用“”或“/”分隔。 2、絕對(duì)定位路徑:最前面必須以“”開頭,后面是可選的相對(duì)定位路徑。其中“”表示選擇文檔的根節(jié)點(diǎn)。如果其后跟有相對(duì)定位路徑,該定位路徑將選擇相對(duì)于根節(jié)點(diǎn)的節(jié)點(diǎn)集,例如: 從根節(jié)點(diǎn)開始,選擇節(jié)點(diǎn) CnGame下的Opponent的子節(jié)點(diǎn)Coach的子節(jié)點(diǎn)下的 CoachNam元素。三、定位階 一個(gè)定位路徑由用“/”分隔的一個(gè)或多個(gè)定位階組成,而定位階由軸、節(jié)點(diǎn)測試、謂詞三個(gè)部分組成。如下面的例子: 其中:l“child:Opponentposition()=2/ child:

4、Coach/CoachName”是定位路徑;lchild:Opponentposition()=2是其中 的一個(gè)定位階;l“child”是軸;l“Opponent”為節(jié)點(diǎn)測試;l“position()=2” 是謂詞。1、軸(AXeS) 定義了由定位階選擇的節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)之間的樹型關(guān)系。如上述例子中的“Child”就是軸的名稱,它表明是當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)。 表8-l是軸名稱及其對(duì)應(yīng)關(guān)系列表。2、節(jié)點(diǎn)測試 節(jié)點(diǎn)測試是對(duì)軸對(duì)應(yīng)的節(jié)點(diǎn)集合進(jìn)行測試,判斷其是否為合適的節(jié)點(diǎn)。如果節(jié)點(diǎn)測試結(jié)果為真,則進(jìn)行相應(yīng)的操作。節(jié)點(diǎn)測試又可為表8-2所示的幾種情況之一。圖與表表1.doc(軸名稱及其對(duì)應(yīng)關(guān)系列表)圖與表表

5、2.doc(節(jié)點(diǎn)測試分類表)3、謂詞 根據(jù)軸和節(jié)點(diǎn)測試得到初始節(jié)點(diǎn)后,可以由謂詞來做進(jìn)一步的過濾選擇。謂詞的形式是在方括號(hào)“”中加人謂詞表達(dá)式。在對(duì)初始節(jié)點(diǎn)集合中的每個(gè)節(jié)點(diǎn)進(jìn)行選擇過濾時(shí),根據(jù)該節(jié)點(diǎn)在集合中的位置判斷謂詞表達(dá)式。當(dāng)表達(dá)式為真時(shí)選擇該節(jié)點(diǎn),否則不予選擇。 如在child:Opponentposition()=2/ child:Coach/CoachName“中,方括號(hào)中的position()=2為謂詞形式,表明選擇XML文檔樹中的第二個(gè)Opponent節(jié)點(diǎn)下的子節(jié)點(diǎn)為Coach的CoachName節(jié)點(diǎn)。在Xpath標(biāo)準(zhǔn)中,謂詞函數(shù)分為以下幾種類型:l節(jié)點(diǎn)集合函數(shù)l字符串函數(shù)l布爾

6、函數(shù)l數(shù)值函數(shù) 在82節(jié)中將詳細(xì)講述它們的用法。四、定位路徑舉例 講述完定位路徑的基本概念后,下面講述的是定位路徑的一些具體實(shí)例。 在表8-3中給出了定位路徑的一些實(shí)例。圖與表表3.doc(定位路徑實(shí)例)例EX8-1.xml 問題描述:顯示2002年世界杯足球賽中國隊(duì)所在小組的第1個(gè)對(duì)手的相關(guān)情況。 第一步,在第2 章中實(shí)例Ex2-6.xml的首行語句 ?xml version=“1.0” encoding=“GB2312”? 之后加人下面的一行語句: ?xml-stylesheet type=“text/xsl” href=“EX8-1.xsl”? 其余不變,并且將該文件另存為EX8-1.x

7、ml。 第二步,建立EX8-1.xml對(duì)應(yīng)的樣式文件EX8-1.xsl文檔。例EX8-1.xsl【注意】 一些資料中XML文檔相應(yīng)的XSLT文件采用的樣式表結(jié)構(gòu): 已經(jīng)過時(shí),目前采用的是: 五、XPath的簡縮語法 每一個(gè)定位路徑都可以用簡潔的語法來表示,表8-4列出了它們相對(duì)應(yīng)的關(guān)系。 圖與表表4.doc( XPath的簡縮語法) 例EX8-2.xsl XPath除了提供一套用于定位XML文檔各部分的語法之外,還包括一些函數(shù),它們提供基本的數(shù)字運(yùn)算、布爾運(yùn)算和字符串處理功能。一、節(jié)點(diǎn)集及其函數(shù) 所謂的節(jié)點(diǎn)集就是節(jié)點(diǎn)的集合。如表達(dá)式“Child:Opponent/child:Coach”表明返

8、回Opponent下Coach子節(jié)點(diǎn)下的所有節(jié)點(diǎn)的集合。 可以通過節(jié)點(diǎn)集函數(shù)選擇相應(yīng)的節(jié)點(diǎn)。節(jié)點(diǎn)集函數(shù)參見表8-5。圖與表表5.doc(節(jié)點(diǎn)集函數(shù))例EX8-3.xsl二、字符串及其函數(shù) XPath中字符串是由Unicode字符組成。表8-6列出了XPath中定義的字符串函數(shù)。圖與表表6.doc(字符串函數(shù))例EX8-4.xsl三、布爾值及其函數(shù) XPath中的布爾值為 true和 false。數(shù)值為 0的表達(dá)式和空字符串(“”)的布爾值為false,其余為 true。 在表達(dá)式中可通過靈活運(yùn)用邏輯操作符產(chǎn)生布爾值,表8-7是邏輯操作符及其用法的說明。 圖與表表7.doc(邏輯操作符) 圖與表表8.doc(布爾函數(shù))四、數(shù)值及其函數(shù) XPath中,數(shù)值是指寬度為64位的雙精度浮點(diǎn)格式的數(shù)據(jù)類型。 表8-9列出了數(shù)值類型常用的操作符。 圖與表表9.doc(數(shù)值函數(shù)) 圖與表表10.doc(數(shù)值類型操作符) 本章我們講述了如何在XSLT中靈活應(yīng)用XPath。

溫馨提示

  • 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)論