网络编程
位置:首页>> 网络编程>> XML编程>> XPath 1.0 学习笔记

XPath 1.0 学习笔记

作者:快乐笛子 来源:快乐笛子的博客 发布时间:2009-02-25 12:19:00 

标签:XPath,学习,笔记,xml

W3C 发布 XPath 1.0 规范是在 1999 年,那时我还正在备战高考,不料十年后,我才开始学习XPath,落后的差距不是一般的大(暴汗),而 XPath 2.0 规范草稿也于 2005 被提出,并有文章透露 XPath 2.0 目前正在 W3C 审核过程的最终阶段。路漫漫其修远兮~

幸好 XPath 1.0 内部的函数比较少,也比较简单,下面就逐一罗列并笔记之:

Stringconcat(str0,str1[,str2,...])字符串连接函数,返回每个传入参数的连接结果(至少要有两个参数)。
contains(str0,str1)如果 str0 包含 str1 返回 true 否则返回 false 。
string(n)n 可以布尔表达式,节点集或者数字,返回它们的字符串值(字符串转换函数,类似于 toString())。
string-length([str])返回字符串 str 的长度。如果 str 被忽略,则返回当前节点值的字符串长度。
substring(str,offset[,len])截取字符串函数。该函数与 php 的 substr 函数一样。第二个参数是开始截取的位置,第三个参数是需要截取的长度,如果忽略第三个参数,则默认截取到字符串的结尾。
substring-after(str0,str1)从 str0 的左端开始查找,在第一个 str1 的位置开始截取到字符串结尾,不包括 str1 。如果 str0 不包括 str1 则返回空字符串。
substring-before(str0,str1)从 str0 的左端开始截取,在第一个 str1 的位置结束,不包括 str1 。如果 str0 不包含 str1 ,则返回空字符串。
translate(str0,str1,str2)字符串翻译函数。str1 与 str2 建立了一个简单的字符串映射字典。它们的关系是安装字符的先后顺序一一对应映射的。比如 translate("misshjn","mnh","MN") 返回值是 MissjN。第二个参数中的第三个字符j,在第三个参数中找不到与之对应的映射字符,即存在空字符串与j对应,因此在结果中j可以看做被一个空字符替换了。如果第二个参数比第三个参数短,那么第三个参数多出来的部分将被忽视。
start-with(str0,str1)如果 str0 以 str1 开头,则返回 true,否则为 false。
normalize-space([str])整理空白字符。它既把字符串左右两端的空白字符去除,还会把字符串中间连续多个的空白字符替换为一个空白符。如果 str 被忽略,则取当前节点值。此函数在文章录入时尤为有用。
Numbernumber([object])函数参数依下列各项转换成数字:
  • 可选的空白符跟随可选的减号再跟随 Number 再跟随空白符的字符串转换成 IEEE 754 最接近的 (根据 IEEE 754 就近取整规则) 由字符串表示的数学值的数字;其它任何的字符串转换成 NaN

  • 布尔真转换成 1 ;布尔假转换成 0

  • 节点集合首先转换成字符串好像调用了 string 函数,然后再按字符串参数的方式转换

  • 不是四种基本类型的对象依照所属类型的方式转换成数字。

  • 如果参数省略,则缺省为仅有一个上下文节点为成员的节点集合。

sum(node-set)节点集求和函数。
floor(number)返回小于或等于 number 的最大整数。比如 floor(2.8) => 2,floor(1.1) => 1。(不管小数多少,都砍掉)
ceiling(number)返回大于或等于 number 的最小整数。比如 ceiling(2.8) => 3,ceiling(1.1) => 2。(不管小数多少,都进上去)
round(number)四舍五入函数。
Booleanboolean(object)返回计算布尔结果。object 有以下几种情况:
  • 如果是数值,只要数值为 0,就返回 false,否则就返回 true,即使是负数也返回 true。

  • 如果是字符型,且长度为0的空字符串,就返回 false,否则就返回 true。

  • 如果是节点或者节点集,只要节点不存在或者节点集为空,则返回 false,否则返回 true。

true()返回 true
false()返回 false
not(boolean)返回相反的状态。如果boolean为true,返回值为false,否则返回true。
lang(str)返回当前节点的语言是否与 str 一致。
Node-Setcount(node-set)返回节点集中的节点数目。node-set 其实就是 XPath 表达式。
position()返回当前节点在其兄弟节点中的位置(序号),由 1 开始计数。
last()返回当前节点集中最后一个节点的位置。实际上就是所有兄弟节点的总数。
name(node-set)返回 node-set 的节点名称,即 tagName。
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com