XPath中另外一种重要的表达式则是函数调用。XPath定义了一个核心函数库,这个库里的函数是所有事先都必须支持的。函数库里的所有函数都属于非命名空间,因此它们的名称不需要命名空间前缀。XPath可以通过适当的扩充来增大这个核心函数库,在扩充时,扩充的函数名称必须是具有命名空间前缀的限定名。以下分类描述核心函数库中的函数。在函数库中的每一个函数都使用一个函数原型,该原型给定返回类型,函数的名称,以及参数的类型。如果参数类型后跟随一个问号,那么参数是可选的;否则,参数则是必须有的。(1) 节点集合函数number last()描述:返回上下文节点序列中的节点的数目。number position()描述:position函数返回一个数字,该数字等于上下文节点在上下文集中的索引值。number count(node-set)描述:count 函数返回在参数node-set中节点的个数。node-set id(object)描述:id 函数通过唯一的ID选择元素。当id的参数是节点集合类型时,结果是对参数节点集合里的每一个节点的字串值应用id函数的结果的合并。当id的参数是任何其它的类型时,参数首先被转换成一个字符串,即如调用了string 函数一样,字符串被分割成由空白格分开的助记符的列表。结果是在同一文档中那些id值等于列表中任何一个助记符的元素节点的集合。string local-name(node-set?)描述:函数local-name 返回一个节点的扩展名的本地部分,该节点为参数节点集里的第一个节点。如果参数节点集合是空或第一节点没有扩展名,则返回一个空字符串。如果参数被省略,它默认将上下文节点作为节点集的的唯一成员。string namespace-uri(node-set?)描述:函数namespace-uri 返回参数节点集合中的第一个节点的扩展名的命名空间 URI。如果参数节点集合是空的,第一节点没有扩展名,或扩展名的命名空间 URI 为空,则返回一个空字符串。如果参数被省略,它默认将上下文节点作为节点集的的唯一成员。string name(node-set?)描述:函数 name 返回一个字符串,字符串包含一个QName,它依照文档顺序返回参数节点集合中的第一个节点的扩展名。如果参数节点集合是空的或第一个节点没有扩展名,返回一个空的字符串。如果它省略了的参数,则默认将上下文节点作为节点集的的唯一成员。(2) 字符串函数string string(object?)描述:string 函数将对象依下列各项转换成字符:· 如果是节点集,则返回在节点集合中文档顺序下第一个节点的字串值,如果节点集是空的则返回空字符串。· 数字按以下方式转换成字符o NaN 转换成字符串 NaN o 正零转换成字符串 0 o 负零转换成字符串 0 o 正无穷大转换成字符串 Infinity o 负无穷大转换成字符串 -Infinity o 如果数字是整数,该数字表示成一个与无小数点及打头零的的十进制的形式,如果数字是负数,则在其前加一个负号。o 否则,该数字表示成一个与包括小数点及至少在小数点前面有一数字并且小数点后有一数字的的十进制的形式,如果数字是负数,则在其前加一个负号;除了在小数点前要求直接要有一个位的零外,不应该有打头的零;在小数点后除了要求的一位数外,应有不多不少的位来区分该数与所有其它的IEEE 754数值。· 布尔的假值转换成字符串false。布尔的真值转换成字符串true。· 不是四种基本类型的对象依照所属类型的方式转换成字符串。如果参数省略,则缺省为仅有一个上下文节点为成员的节点集合。string concat(string, string, string*)描述:concat 函数返回它的参数的连接。boolean starts-with(string, string)描述:如果第一个字符串参数以第二个字符串参数起头,starts-with 函数返回真,否则,返回假。boolean contains(string, string)描述:如果第一个字符串参数包含第二个字符串参数,contains 函数返回真,否则,返回假。string substring-before(string, string)描述:substring-before 函数返回第一个字符串参数中在第二个参数首次出现之前的子字符串,或者,如果第一个字符串参数不包含第二个字符串参数则返回空字符串。string substring-after(string, string)描述:substring-after 函数返回第一个字符串参数中在第二个参数首次出现之后的子字符串,或者,如果第一个字符串参数不包含第二个字符串参数则返回空字符串。string substring( string , number , number? )描述:substring 函数返回第一个字符串参数中从第二个参数所指定的位置开始,以第三个参数为长度的子字符串。如果没有第三个参数,则返回从第二个参数所指定的位置开始直到结束。number string-length( string? )描述:string-length 返回字符串中字符的个数。如果参数省略,则缺省为上下文节点的 字串值。string normalize-space(string?)描述:normalize-space 函数返回空白符规范化后的参数字符串,该规范化是清除前导及结尾的空白以及用一个空白符替换连续的空白符。如果参数省略,则缺省为上下文节点的字串值。string translate(string, string, string)描述:translate 函数返回第一个参数的字符串,其中有在 猜你喜欢