设为首页 收藏本站
查看: 726|回复: 0

[经验分享] XPath 入门2 from IBM DW

[复制链接]

尚未签到

发表于 2015-10-5 09:17:57 | 显示全部楼层 |阅读模式
  XPath 定义了一组函数,称为核心函数库。每个函数从三个方面来定义:

  • 函数名
  • 返回类型(必须的,不能使用 void)
  • 参数类型(可以没有参数或者带有多个参数,参数可以是必需的也可以是可选的)
  

节点集函数

节点集函数提供关于一组节点(一个或多个节点)的信息。常用的节点集函数有:

  • last()——返回一个称为上下文大小的数字,即给定上下文中的节点数。
  • position()——返回一个称为上下文位置的数字,集当前节点在给上下文节点集(列表)中的位置。比如,可以用表达式 position()=last() 测试处理的是否是集合中的最后一个节点。
  • count(node-set)——返回实参节点集中的节点数。比如,在 AuctionItemList.xml 文档的上下文中,count(//item) 返回 item 元素的个数,即 7。
  
字符串函数

  通过字符串函数您可以操纵字符串。常用的字符串函数有:

  • string()——把参数对象或者上下文结点转化成字符串。合法的参数包括节点集、数字、布尔值或者其他任何类型——但是对于最后一种情况转换的结果不可预料。建议使用 XSLT 函数 format-number 把数字转化成字符串,或者使用 XSLT 元素 xsl:number 提供给用户。
  • concat()——以两个或更多字符串作为参数并返回这些字符串的连接。比如,concat("Original ","recording ","Blue Train LP record") 返回 "Original recording Blue Train LP record"
  • starts-with()——如果第一个字符串参数以第二个字符串参数开始则返回 true,否则返回 false。比如,starts-with("Miles Smiles album, CD", "Miles") 返回 true。
  • contains()——如果第一个字符串参数包含第二个字符串参数则返回 true,否则返回 false。比如,contains("Miles Smiles album, CD", "album") 返回 true。
  
布尔函数

  布尔函数用于把一个对象或字符串转化成 true 或者 false,或者直接获得真或假的值。布尔函数有:

  • boolean()——根据以下规则返回作为参数传递的对象转换成布尔值的结果:不同于 0 或者 NaN 的数字为 true;非空的节点集或者字符串为 true。其他类型的对象已不可预料的方式转换。
  • not()——如果作为参数传递的布尔值为 false 返回 true,否则返回 false。
  • true()false()——分别返回 true 或 false。这些函数很有用,因为在 XPath 中 true 和 false 被看作是普通的字符串而不是真和假的值。
  • lang()——如果上下文节点的语言和字符串参数中指定的语言相同,或者是它的一种子语言返回 true,否则返回 false。上下文节点的语言通过 xml:lang 属性的值定义。
  
  数字函数

数字函数是 XPath 的数值函数,都返回数字。其中包括:

  • number()——把可选的对象参数(如果没有指定参数则使用上下文节点)转化成数字,转换的规则如下:

    • 布尔值 true 转换成1,false 转换成 0。
    • 字符串转换成合理的数字。
    • 节点集首先转换成字符串,然后把这个字符串转换成数字。
    其他类型对象以不可预料的方式转换。比如,number("250") 返回 250,而 number("miles1965") 返回 NaN
  • sum()——对节点集参数中的所有节点应用 number() 函数后返回它们的和。
  • floor()——返回不大于数字参数的最大整数数字。比如,floor(2.75) 返回 2。
  • ceiling()——返回不小于数字参数的最小整数数字。比如,ceiling(2.75) 返回 3。
  • round()——返回和数字参数最接近的整数数字。比如,round(2.75) 返回 3。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-122803-1-1.html 上篇帖子: IBM Tivoli NetView网管软件实战 下篇帖子: IBM前个人电脑业务对联想业绩贡献甚微
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表