曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
• 正數
• 負數
• 正零
• 負零
• 正無窮大
• 負無窮大
• 不是一個數(“N a N”)
運算符+、-、*、d i v和m o d可以用于數值運算,括號將會影響到數學運算順序。
由XPa t h提供的最簡單的函數是Position( ),它可用來對正被討論的元素位置進行簡要的評
估。例如,我們可以利用它僅選擇上下文元素的第一個< B o o k >子元素,使用下面的謂詞:
我們稍后將會看到謂語如何適用于XPa t h表達式。
由于該函數經常被使用,它被隱式地用來表示數值中或者數字常量中函數結果的位置,所
以上面謂詞可以簡寫為:
在XPa t h標準中謂詞函數的全集被分為下面幾類:
• 節點集合函數
• 字符串函數
• 布爾函數
• 數值函數
我們將依次看一下這幾種類型,不過在列出這些函數之前,我們現復習一下它們所需的一
些基本定義。
(1) 定義
許多函數在當前的表達式評估上下文環境中以某種方式執行。這個上下文包括下面幾種上
下文節點(我們已經知道,它是正被評估的節點,或者如果沒有指定節點的話是根節點)。
第8章鏈接和查詢使用271 下載
• 上下文大小—上下文中節點的全部合計,使用上下文節點及軸來決定。
• 上下文位置—上下文中節點的當前位置,它小于或者等于上下文大小。
• 變量綁定—在變量名字和值之間的映射,這里值為對象。
• 函數庫—函數名字和函數之間的映射。
• 命名空間聲明—從命名空間前綴到U R I之間的映射。
任何給定節點有一個字符串-值,每種類型節點的字符串-值都存在,可以來自正被討論的節
點的一部分,或者也可以由它的下一級的字符串-值生成。
一些類型的節點有一個擴展名,形式為: M y N a m e s p a c e : M y N a m e。其中M y N a m e s p a c e部分
稱為命名空間- U R I,M y n a m e部分稱為本地部分。
現在讓我們繼續看一下函數。
(2) 節點集合函數
這些函數與多個節點有關,如表8 - 3所示。
表8 - 3
函數(返回類型,名和參數) 說明
number last( ) 返回表達式評估上下文的上下文大小
number position( ) 返回表達式評估上下文的上下文位置
number count(Node-set) 返回討論節點集合的節點數目
node-set id(object) 返回一個節點集合,該集合中節點的I D屬性和o b j e c t參數匹
配。object 可以是I D的空格分開的字符串,或者節點集自身,
這種情況下, I D的集合由那些節點的字符串-值構成
string local-name(node-set?) 返回提供(按文檔順序)的節點集合中第一個節點(或者
上下文節點,如果參數被忽略的話)的擴展名的本地部分。
空節點集合或者不具備命名空間的節點將返回空字符串
s t r i n g - n a m e s p a c e - u r i ( n o d e - s e t ? ) 返回提供(按文檔順序)的節點集合中第一個節點(或者上
下文節點,如果參數被忽略的話)的擴展名的命名空間部分。
空節點集合或者不具備命名空間的節點將返回空字符串
string name(node-set?) 返回QNa m e,表示提供(按文檔順序)的節點集合中第一
個節點(或者上下文節點,如果參數被忽略的話)的擴展名
(3) 字符串函數
字符串函數將對字符串進行操作或者返回字符串(參見表8 - 4)。
表8 - 4
函數(返回類型,名和參數) 說明
string string(Object?) 返回指定對象的stringified 版本,或者當沒有指定節點的時
候,上下文節點的字符串-值。如果對象是一個節點集合,那
么將返回該集合中(按文檔順序)第一個節點的字符串-值。
數值返回其字符串表示,布爾值返回t r u e或f a l s e,其他類型的
對象返回它們本身支持的值
string concat(string,string, string*) 返回參數的連接結果
272使用XML 高級編程
下載
(續)
函數(返回類型,名和參數) 說明
boolean starts-with( string, string) 如果第一個字符串以第二個字符串開始,返回t r u e,否則返
回f a l s e
boolean contains(string, string) 如果第一個字符串包含第二個字符串,返回t r u e,否則返回
f a l s e
string Substring-before(string, string) 如果第一個字符串包含第二個字符串,返回第一個字符串出
現在第二個字符串之前的部分,否則返回一個空字符串
string substring-after(string, string) 如果第一個字符串包含第二個字符串,返回第一個字符串出
現在第二個字符串之后的部分,否則返回一個空字符串
string substring(string, number, number) 返回字符串的一部分,它以第一個數字索引的字符開始,并
由第二個數字指定長度。如果第二個數字缺省,返回的字符串
將包含從第一個數字索引的字符開始,到原始字符串結束的部
分。字符將從開始被索引,這里,第一個字符是字符1
number string-length(string?) 返回指定字符串的字符數目,如果沒有提供字符串,則返回
上下文節點的字符串-值的字符數目
string normalize-space( string?) 去除前后空白空間,或者使用單個字符來替代空白,如果沒
有指定對象,則對上下文節點的字符串-值進行操作
string translate(string, string, string) 根據第二個字符串和第三個字符串來替代所提供的第一個
字符串中的字符。第一個字符串中的每個字符和第二個字符
串中的字符相比較,如果匹配,將其替換,替換字符位于第
三個字符串中,它的位置和第二個字符串中匹配字符的位置
相匹配。如果第三個字符串中該位置沒有字符(它將會發生
在第三個字符串短于第二個字符串的時候),則把字符去掉
即可
(4) 布爾函數
布爾函數均返回布爾值(參見表8 - 5)。
表8 - 5
函數(返回類型,名和參數) 說明
booelan boolean(Object) 基于提供的對象返回布爾值,支配這種轉換的規則我們前面
中國航空網 m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(95)