從JS到AJAX-11XPATH_第1頁
從JS到AJAX-11XPATH_第2頁
從JS到AJAX-11XPATH_第3頁
從JS到AJAX-11XPATH_第4頁
從JS到AJAX-11XPATH_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、nXPath中對(duì)元素和屬性的匹配,主要有以下幾種: n選擇分支 n定位節(jié)點(diǎn) n選擇未知元素 n選擇屬性 nXPath語法主要是關(guān)于一下幾方面: nXPath表達(dá)式 nXPath中對(duì)元素和屬性的匹配nXPath定位路徑 nXPath函數(shù)庫 n每個(gè)XML文檔都可看成是一棵樹,該樹與計(jì)算機(jī)中的樹形文件夾非常類似,XPath使用以斜線分隔的子元素名的列表來描述某個(gè)XML文檔的路徑所匹配的元素。 n/class/studentn表示選擇“class”元素下所有的“student”元素 n/class/student/namen表示選擇“class”元素下所有的“student”元素 n/class/st

2、udent/*n用于選擇“class”元素下所有的“student”元素的所有子元素 n/class/*/namen用于選擇“class”元素下所有的子元素下的所有“name”元素 n/*/*/namen用于選擇具有兩個(gè)祖先的所有“name”元素 n/*n用于選擇該文檔中的所有元素 n在實(shí)際應(yīng)用中我們經(jīng)常會(huì)使用通配符“*”來選擇未知的XML元素。如下:n通過在XPath語句中使用中括號(hào)“ ”可以進(jìn)一步指定某個(gè)元素。在中括號(hào)中可以使用各種函數(shù)、數(shù)值、表達(dá)式等來指定某個(gè)符合條件的元素。如下:n/class/student1 n選擇“class”元素下的第一個(gè)“student”子元素 n/class

3、/studentagen選擇“class”元素下含有“age”元素的所有“student”元素 n/class/studentage=20n選擇“class”元素下“student”元素中的“age”元素值為20的所有“student”元素 n/class/studentage=20/namen選擇“class”元素下的“age”元素值為20的所有“student”元素下的所有“name”元素 n/class/studentlast()n選擇“class”元素下的最后一個(gè)“student”子元素 n通過在XPath語句中使用“|”操作符來選擇多個(gè)路徑。如下:n/class/student/na

4、me | /class/teacher/namen表示選擇“class”元素下“student”元素中的所有“name”元素和“class”元素下“teacher”元素中的所有“name”元素 n/name | /age | /emailn選擇文檔中所有的“name”元素、“age”元素和“email”元素 n/name | /class/student/age n選擇文檔中所有的“name”元素和“class”元素下“student”元素中的所有“age”元素n在XPath語法中,要獲得屬性信息必須以前綴“”來指定,如下 :n/ idn表示選擇所有屬性名為“id”的屬性 n/class/st

5、udent idn表示選擇“class”元素下包含有“id”屬性的所有“student”元素 n/class/student *n表示選擇“class”元素下包含有屬性的所有“student”元素 n/class/student id= ADR02n表示選擇“class”元素下包含有“id”屬性的值為“ADR02”的所有“student”元素 10n一個(gè)XPath定位路徑表達(dá)式將返回一個(gè)符合條件的節(jié)點(diǎn)集。n定位路徑可以是相對(duì)路徑,也可以是絕對(duì)路徑。絕對(duì)定位路徑以一個(gè)斜線“/”開頭,而相對(duì)定位路徑則沒有。定位路徑是由一個(gè)或多個(gè)定位步驟組成,每個(gè)步驟用一個(gè)斜線分隔。 n定位絕對(duì)路徑的表達(dá)式如下所示

6、:n/class/student/namen定位相對(duì)路徑的表達(dá)式如下所示:nclass/student/namen定位步驟按照順序從左到右依次求值。每一個(gè)定位步驟都是相對(duì)于上下文節(jié)點(diǎn)集中的節(jié)點(diǎn)進(jìn)行求值的。n一個(gè)定位路徑由若干個(gè)定位步驟組成。 n一個(gè)定位步驟一般有三部分: n一個(gè)軸,它指定了定位步驟選擇的節(jié)點(diǎn)與上下文節(jié)點(diǎn)之間的關(guān)系。 n一個(gè)節(jié)點(diǎn)測(cè)試,它指定定位步驟選擇的節(jié)點(diǎn)的節(jié)點(diǎn)類型以及節(jié)點(diǎn)擴(kuò)展名。 n零個(gè)或零個(gè)以上的判定語句,它使用專有的表達(dá)式進(jìn)一步細(xì)化定位步驟選擇的節(jié)點(diǎn)集合。 n定位步驟的語法是由兩個(gè)冒號(hào)分開的軸名和節(jié)點(diǎn)測(cè)試組成,其后可跟隨零個(gè)或零個(gè)以上在方括符內(nèi)的表達(dá)式。 nchild:a

7、geage=20n軸名n一般格式如下:n判定語句n節(jié)點(diǎn)測(cè)試n用到的軸主要有以下幾種 :lchild:當(dāng)前節(jié)點(diǎn)所有的子節(jié)點(diǎn)。例如:child:*表示選擇當(dāng)前節(jié)點(diǎn)的所有子元素child:text()表示選擇當(dāng)前節(jié)點(diǎn)的文本節(jié)點(diǎn)。child:node()表示選擇當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)。ldescendant:該軸包含該節(jié)點(diǎn)的后裔;后裔是一個(gè)孩子或一個(gè)孩子的孩子,等等,后裔軸從來不包含屬性或命名空間節(jié)點(diǎn)。例如:descendant:name表示選擇當(dāng)前節(jié)點(diǎn)的后代中所有name元素。lparent:當(dāng)前節(jié)點(diǎn)的所有父節(jié)點(diǎn)。lancestor:該軸包含該節(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),除非該節(jié)點(diǎn)是根節(jié)點(diǎn);例如:ancestor:age表示選擇當(dāng)前節(jié)點(diǎn)的祖先節(jié)點(diǎn)中所有的age元素。lfollowing-sibling:包含該節(jié)點(diǎn)的所有在其后的兄弟,如果該節(jié)點(diǎn)是屬性節(jié)點(diǎn)或命名空間節(jié)點(diǎn),following-sibling 則為空。lpreceding-sibling:包含該節(jié)點(diǎn)的所有在其前的兄弟,如果該節(jié)點(diǎn)是屬性節(jié)點(diǎn)或命名空間節(jié)點(diǎn),則preceding-sibling軸為空。lfollowing:包含在該節(jié)點(diǎn)所在的同一文檔中,所有依照文檔順序在該節(jié)點(diǎn)后的節(jié)點(diǎn),但排除所有的后裔,也排除屬性節(jié)點(diǎn)以及命名空間節(jié)點(diǎn)。lpreceding:包含

9、在該節(jié)點(diǎn)所在的同一文檔中,所有依照文檔順序在該節(jié)點(diǎn)前的節(jié)點(diǎn),但排除所有的后裔,也排除屬性節(jié)點(diǎn)以及命名空間節(jié)點(diǎn)。lattribute:包含該節(jié)點(diǎn)的屬性,除非該節(jié)點(diǎn)是元素,該軸將為空。例如:attribute:* 表示選擇當(dāng)前節(jié)點(diǎn)的所有屬性。lnamespace:包含該節(jié)點(diǎn)的命名空間節(jié)點(diǎn),除非該節(jié)點(diǎn)是元素,該軸將為空。lself:只包含該節(jié)點(diǎn)本身。nl l ancestor-or-self:包含該節(jié)點(diǎn)和該節(jié)點(diǎn)的祖先;這樣該軸將總是包括根節(jié)點(diǎn)。ldescendant-or-self:包含該節(jié)點(diǎn)和該節(jié)點(diǎn)的后裔。n節(jié)點(diǎn)測(cè)試是一個(gè)條件,并且是路徑表達(dá)式中定位步驟的第二個(gè)組件。在該軸中選定的所有節(jié)點(diǎn)都必須滿

10、足此條件。有以下兩種 n以節(jié)點(diǎn)名作為節(jié)點(diǎn)測(cè)試 n以節(jié)點(diǎn)類型作為節(jié)點(diǎn)測(cè)試 n有如下的路徑表達(dá)式 :n/child:name n以節(jié)點(diǎn)名“name”作為節(jié)點(diǎn)測(cè)試 nchild: text() n以節(jié)點(diǎn)類型作為節(jié)點(diǎn)測(cè)試 n主要節(jié)點(diǎn)類型有: nnode( ):任何類型的節(jié)點(diǎn)。 nprocessing-instruction( ):處理指令節(jié)點(diǎn)。 ntext( ):文本類型節(jié)點(diǎn)。 ncomment( ):表示注釋節(jié)點(diǎn)。 1920nXPath除了定位路徑表達(dá)式外,還有許多其它的基本表達(dá)式結(jié)構(gòu),包括布爾、等式、關(guān)系和數(shù)值表達(dá)式。它們通常用于XPath謂詞和各種XSLT結(jié)構(gòu)中。 n關(guān)系表達(dá)式 n數(shù)值表達(dá)式 n

11、數(shù)值表達(dá)式的運(yùn)算符主要包括:加(+)、減(-)、乘(*)、除(div)和取模(mod)。n一般格式如下:n操作數(shù)1 運(yùn)算符 操作數(shù)2運(yùn)算符作用=判斷兩個(gè)數(shù)值是否相等!=判斷操作數(shù)1是否不等于操作數(shù)2<小于<=小于等于>大于>=大于等于or或and和n關(guān)系表達(dá)式主要用于對(duì)兩個(gè)值的比較,其中主要的運(yùn)算符及其用法如表所示: nXPath提供了函數(shù)庫以方便計(jì)算表達(dá)式。我們可以使用XPath函數(shù)改進(jìn)XPath的查詢,并提高XPath的編程能力和其靈活性。 nXPath函數(shù)庫中的函數(shù)主要分為 n字符串函數(shù) n節(jié)點(diǎn)集函數(shù) n布爾函數(shù) n數(shù)值函數(shù) n注意:使用XPath函數(shù)時(shí)必須嚴(yán)格區(qū)

12、分函數(shù)名的大小寫和參數(shù)信息。lcount( ):該函數(shù)返回被選元素的數(shù)目。lid( ):通過元素的唯一ID選擇元素。llast( ):返回最后一個(gè)節(jié)點(diǎn)是第幾個(gè)節(jié)點(diǎn)。llocal-name( ):返回節(jié)點(diǎn)集中第一個(gè)節(jié)點(diǎn)的local name。lname( ):返回元素的元素名。lnamespace-uri( ):返回節(jié)點(diǎn)集中第一個(gè)節(jié)點(diǎn)的命名空間URI。nl l position( ):返回被選元素是第幾個(gè)節(jié)點(diǎn)。2526l concat( ):返回字符串連接的結(jié)果。l contains( ):如果第一個(gè)字符串包含第二個(gè)字符串,則返回真,否則返回假。l normalize-space( ):返回去除

13、了前后空白以及重復(fù)空白的參數(shù)字符串。l starts-with( ):如果第一個(gè)字符串以第二個(gè)字符串開頭則返回真,否則返回假。l string( ):將對(duì)象轉(zhuǎn)換為字符串。l string-length( ):返回一個(gè)字符串的長度。l substring( ):返回第一個(gè)參數(shù)中從第二個(gè)參數(shù)指定的位置開始、第三個(gè)參數(shù)指定的長度的字符串l substring-after( ) :返回字符串中從開始到某一字符串第一次出現(xiàn)的位置后的字符串。n數(shù)值函數(shù)主要有以下幾種: l ceiling( ):返回不小于參數(shù)的最小整數(shù)。l floor( ):返回不大于參數(shù)的最大整數(shù)。l number( ):將參數(shù)轉(zhuǎn)換為數(shù)字。l round( ):返回與參數(shù)最接近的整數(shù)值。l l sum( ):返回節(jié)點(diǎn)集中所有節(jié)點(diǎn)的總和。每個(gè)節(jié)點(diǎn)在求和之前先轉(zhuǎn)換為數(shù)值。 n如:nceiling(4.3)將返回4。nround(4.7)將返回5 nsum(class/student/money)返回學(xué)生的錢數(shù)的總和n布爾函數(shù)主要用于對(duì)參數(shù)表達(dá)式進(jìn)行計(jì)算,并返回結(jié)果。有如下幾種: l boolean():將參數(shù)轉(zhuǎn)換為布爾值。 如果參數(shù)是負(fù)數(shù)或正數(shù),將轉(zhuǎn)換為布爾值true。 如果參數(shù)為零或NaN值,將轉(zhuǎn)換為false。 如果參數(shù)為非空的節(jié)點(diǎn)集,

溫馨提示

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