好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

XML学习笔记6??XPath语言_html/css_WEB-ITnose

在上一篇笔记的结尾,我们接触到了两个用于选择XML文档中特定范围的元素 和 ,这两个元素的取值都是XPath表达式,那么,什么是XPath呢?简单的说,XPath是用于在XML文档中查找信息的语言,可用来在XML文档中遍历元素和属性,很多XML的相关技术比如XSLT、XQuery、XPointer等都是构建于XPath的基础之上,在这一篇笔记中,就来学习一下XPath语言。

fn:abs(num) 返回参数的绝对值。 fn:ceiling(num) 返回大于或等于 num 参数的最小整数。 fn:floor(num) 返回小于或等于 num 参数的最大整数。 fn:round(num) 把 num 参数四舍五入为最接近的整数。 fn:round-half-to-even() 字符串函数 fn:string(arg) 返回参数的字符串值。参数可以是数字、逻辑值或节点集。 fn:codepoints-to-string(int,int,...)

根据一个Unicode值序列序列返回字符串。

例子:codepoints-to-string((84, 104, 233, 114, 232, 115, 101))

结果:'Thérèse'

注意:该函数的参数是一个Unicode值序列,因此必须用括号将参数括起来

fn:string-to-codepoints(string) 根据字符串返回每个字符所对应的Unicode值的序列。 fn:codepoint-equal(comp1,comp2) 根据 Unicode 值序列比较,如果 comp1 的值等于 comp2 的值,则返回 true,否则返回 false。 fn:compare(comp1,comp2) fn:compare(comp1,comp2,collation)

根据对照规则,comp1小于comp2返回 -1;comp1等于comp2,返回0;comp1大于comp2返回1。

fn:concat(string,string,...) 返回字符串的拼接。 fn:string-join((string,string,...),sep) 使用 sep 参数作为分隔符,来返回 string 参数拼接后的字符串。 fn:substring(string,start,len) fn:substring(string,start)

返回从 start 位置开始的指定长度的子字符串。第一个字符的下标是 1。

如果省略 len 参数,则返回从位置 start 到字符串末尾的子字符串。

fn:string-length(string) fn:string-length() 返回指定字符串的长度。如果没有 string 参数,则返回当前节点的字符串值的长度 fn:normalize-space(string) fn:normalize-space() 删除指定字符串的首尾空白,并把内部连续空白压缩为一个,然后返回结果。没有参数,则处理当前节点。 fn:normalize-unicode() 执行 Unicode 规格化。 fn:upper-case(string) 把 string 参数转换为大写。 fn:lower-case(string) 把 string 参数转换为小写。 fn:translate(string1,string2,string3)

把 string1 中的 string2 替换为 string3。

例子:translate('12:30','30','45')

结果:'12:45'

例子:translate('12:30','03','54')

结果:'12:45'

例子:translate('12:30','0123','abcd')

结果:'bc:da'

fn:escape-uri(stringURI,esc-res)

例子:escape-uri("http://example测试数据/test#car", true())

结果:"http%3A%2F%2Fexample测试数据%2Ftest#car"

例子:escape-uri("http://example测试数据/test#car", false())

结果:http://example测试数据/test#car

例子:escape-uri ("http://example测试数据/~bébé", false())

结果:"http://example测试数据/~b%C3%A9b%C3%A9"

fn:contains(string1,string2) 如果 string1 包含 string2,则返回 true,否则返回 false。 fn:starts-with(string1,string2) 如果 string1 以 string2 开始,则返回 true,否则返回 false。 fn:ends-with(string1,string2) 如果 string1 以 string2 结尾,则返回 true,否则返回 false。 fn:substring-before(string1,string2) 返回 string2 在 string1 中出现之前的子字符串。 fn:substring-after(string1,string2) 返回 string2 在 string1 中出现之后的子字符串。 fn:matches(string,pattern) 如果 string 参数匹配指定的模式,则返回 true,否则返回 false。 fn:replace(string,pattern,replace) 把指定的模式替换为 replace 参数,并返回结果。 fn:tokenize(string,pattern)

例子:tokenize("XPath is fun", "\s+")

结果:("XPath", "is", "fun")

anyURI函数 fn:resolve-uri(relative,base) 逻辑函数 fn:boolean(arg) 返回数字、字符串或节点集的布尔值。 fn:not(arg) 首先通过 boolean() 函数把参数还原为一个布尔值,然后再取反。 fn:true() 返回布尔值 true。 fn:false() 返回布尔值 false。 日期时间函数 fn:dateTime(date,time) 把参数转换为日期和时间。 fn:years-from-duration(datetimedur) 返回参数值的年份部分的整数,以标准词汇表示法来表示。 fn:months-from-duration(datetimedur) 返回参数值的月份部分的整数,以标准词汇表示法来表示。 fn:days-from-duration(datetimedur) 返回参数值的天部分的整数,以标准词汇表示法来表示。 fn:hours-from-duration(datetimedur) 返回参数值的小时部分的整数,以标准词汇表示法来表示。 fn:minutes-from-duration(datetimedur) 返回参数值的分钟部分的整数,以标准词汇表示法来表示。 fn:seconds-from-duration(datetimedur) 返回参数值的分钟部分的十进制数,以标准词汇表示法来表示。 fn:year-from-dateTime(datetime) 返回参数本地值的年部分的整数。 fn:month-from-dateTime(datetime) 返回参数本地值的月部分的整数。 fn:day-from-dateTime(datetime) 返回参数本地值的天部分的整数。 fn:hours-from-dateTime(datetime) 返回参数本地值的小时部分的整数。 fn:minutes-from-dateTime(datetime) 返回参数本地值的分钟部分的整数。 fn:seconds-from-dateTime(datetime) 返回参数本地值的秒部分的十进制数。 fn:timezone-from-dateTime(datetime) 返回参数的时区部分,如果存在。 fn:year-from-date(date) 返回参数本地值中表示年的整数。 fn:month-from-date(date) 返回参数本地值中表示月的整数。 fn:day-from-date(date) 返回参数本地值中表示天的整数。 fn:timezone-from-date(date) 返回参数的时区部分,如果存在。 fn:hours-from-time(time) 返回参数本地值中表示小时部分的整数。 fn:minutes-from-time(time) 返回参数本地值中表示分钟部分的整数。 fn:seconds-from-time(time) 返回参数本地值中表示秒部分的整数。 fn:timezone-from-time(time) 返回参数的时区部分,如果存在。 fn:adjust-dateTime-to-timezone(datetime,timezone) 如果 timezone 参数为空,则返回没有时区的 dateTime。否则返回带有时区的 dateTime。 fn:adjust-date-to-timezone(date,timezone) 如果 timezone 参数为空,则返回没有时区的 date。否则返回带有时区的 date。 fn:adjust-time-to-timezone(time,timezone) 如果 timezone 参数为空,则返回没有时区的 time。否则返回带有时区的 time。 QName相关函数 fn:QName() fn:local-name-from-QName() fn:namespace-uri-from-QName() fn:namespace-uri-for-prefix() fn:in-scope-prefixes() fn:resolve-QName() 节点函数 fn:name() fn:name(nodeset) 返回当前节点的名称或指定节点集中的第一个节点。 fn:local-name() fn:local-name(nodeset) 返回当前节点的名称或指定节点集中的第一个节点 - 不带有命名空间前缀。 fn:namespace-uri() fn:namespace-uri(nodeset) 返回当前节点或指定节点集中第一个节点的命名空间 URI。 fn:lang(lang)

如果当前节点的语言匹配指定的语言,则返回 true。

例子:Lang("en") is true for

...

例子:Lang("de") is false for

...

fn:root() fn:root(node) 返回当前节点或指定的节点所属的节点树的根节点。通常是文档节点。 上下文函数 fn:position()

返回当前正在被处理的节点的 index 位置。

例子://book[position()

结果:选择前三个 book 元素

fn:last()

返回在被处理的节点列表中的项目数目。

例子://book[last()]

结果:选择最后一个 book 元素

fn:current-dateTime() 返回当前的 dateTime(带有时区)。 fn:current-date() 返回当前的日期(带有时区)。 fn:current-time() 返回当前的时间(带有时区)。 fn:implicit-timezone() 返回隐式时区的值。 fn:default-collation() 返回默认对照的值。 fn:static-base-uri() 返回 base-uri 的值。 序列函数 一般序列函数 fn:index-of((item,item,...),searchitem)

返回在项目序列中等于 searchitem 参数的位置。

例子:index-of ((15, 40, 25, 40, 10), 40)

结果:(2, 4)

fn:remove((item,item,...),position) 返回由 item 参数构造的新序列 - 同时删除 position 参数指定的项目。 fn:empty(item,item,...) 如果参数值是空序列,则返回 true,否则返回 false。 fn:exists(item,item,...) 如果参数值不是空序列,则返回 true,否则返回 false。 fn:distinct-values((item,item,...),collation)

返回唯一不同的值。

例子:distinct-values((1, 2, 3, 1, 2))

结果:(1, 2, 3)

fn:insert-before((item,item,...),pos,inserts) 返回由 item 参数构造的新序列 - 同时在 pos 参数指定位置插入 inserts 参数的值。 fn:reverse((item,item,...)) 返回指定的项目的颠倒顺序。 fn:subsequence((item,item,...),start,len) 返回 start 参数指定的位置返回项目序列,序列的长度由 len 参数指定。第一个项目的位置是 1。 fn:unordered((item,item,...)) 依据实现决定的顺序来返回项目。 容量测试函数 fn:zero-or-one(item,item,...) 如果参数包含零个或一个项目,则返回参数,否则生成错误。 fn:one-or-more(item,item,...) 如果参数包含一个或多个项目,则返回参数,否则生成错误。 fn:exactly-one(item,item,...) 如果参数包含一个项目,则返回参数,否则生成错误。 比较函数 fn:deep-equal(param1,param2,collation) 如果 param1 和 param2 与彼此相等(deep-equal),则返回 true,否则返回 false。 合计函数 fn:count((item,item,...)) 返回节点的数量。 fn:avg((arg,arg,...)) 返回参数值的平均数。 fn:max((arg,arg,...)) 返回参数中的最大值。 fn:min((arg,arg,...)) 返回参数中的最小值。 fn:sum(arg,arg,...) 返回指定节点集中每个节点的数值的总和。 序列生成函数 fn:id((string,string,...),node) fn:idref((string,string,...),node) fn:data((item1,item2,...)) 返回item1、item2等各项的值所组成的序列。 fn:doc(URI) fn:doc-available(URI) 如果 doc() 函数返回文档节点,则返回 true,否则返回 false。 fn:collection() fn:collection(string)

很明显,把这些内置函数放在这里的目的并不是要强行记住,而只是需要的时候当字典查查(XQuery1.0和XPath共享了这些内置函数,有事没事看看,混个眼熟也挺好的)。

查看更多关于XML学习笔记6??XPath语言_html/css_WEB-ITnose的详细内容...

  阅读:48次