XSL函数介绍(4)

2016-02-19 17:18 8 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的XSL函数介绍(4),喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - Web开发 】

本期学习XSL样式方法,即可用于XSL元素 xsl:for-each 、 xsl:value-of 、 xsl:template 的select属性、 xsl:apply-templates 的match属性、 xsl:if 、 xsl:when 的test属性中,对元素的范围进行筛选,从而提供更大的灵活性。

  
  XML与DHTML(动态HTML)一样,这些节点都是一个个对象,而且这些对象都是有层次的,从根节点开始构成一颗层次清淅的树状结构,这就形成了文档对象模型DOM,通过对象的属性、方法来达到访问控制XML节点的目的。

  
  我们这里不打算就XML的DOM逐一详细阐述,因为这完全可以写成一个篇幅较多的教程,我们先就一些常见的方法作一些讨论,以期对DOM的对象方法有一个大致的了解。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  注:从本期开始,所有示例不再提供完整源代码,如有不明白之处,请仔细阅读前面七期、并动手练手。

  一、end()

  含义:返回集合中最后一个元素。

  示例:输出最后一份简历

  假定XML文件格式为:

   resume  /resume  resume  /resume 

  相应XSL文件内容为:

   xsl:for-each select="resume[end()]"  /xsl:for-each 

  或

   xsl:templates match="resume[end()]"  /xsl:templates 

  或

   xsl:apply-template select="resume[end()]"  /xsl:apply-template 

  二、index()

  含义:返回该元素在集合中的位置,返回值是一整数,其中第一个元素返回0

  示例:返回前面三份简历

  resume[index() $le$ 3]

  注意:index()是与父元素相关的,请看下例:

   x 

   y/ 

   y/ 

   /x 

   x 

   y/ 

   y/ 

   /x 

  返回所有 x 中的第一个 y 

  x/y[index()=0] 或x/y[0]

  三、nodeName()

  含义:返回元素的名字,即标记名

  示例:选择任意元素,假如其名字(即标记名)等于name

  *[nodeName()="name"] 或 *[name]

  
四、number()

  含义:将值转换为数值形式,如果不是数值则返回空,要求参数

  示例:年龄(age) ?0岁的人的简历(resume)

  resume[number(age) $lt$ 30] 或resume[age $lt$ 30]

  五、nodeType()

  含义:返回结点类型,结果为是数值。以下是返回值列表:

  结点类型
结点类型值 结点的字符形式描述

  Element
1
"element"

  Element Attribute 
2
"attribute"

  Markup-Delimited Region of Text 
3
"text"

  Processing Instruction 
7
"processing_instruction"

  Comment
8
"comment"

  Document Entity
9
"document"

  六、value()

  含义:返回元素或属性的值

  示例:value()是元素或属性的缺省方法,以下表示是等价

  name!value()="NAME"与name="NAME"

  @attr="attribute_value"与@attr="attribute_value"

  注:@是属性前缀,@attr表示是属性attr

  
七、attribute()

  含义:返回所有属性结点的集合,等价于@*

  示例:寻找所有的resume元素,满足条件至少有一个属性的值为ABC

  resume[$any$ attribute()="ABC"]或resume[$any$ @*="ABC"]

  寻找所有的resume元素,满足条件至少有一个子元素有一个属性的值为ABC

  resume[$any$ */attribute()="ABC"]或resume[$any$ */@*="ABC"]

  
八、comment()

  含义:返回所有注释结点

  示例:例如

  resume[$any$ comment()="禹希初的简历"]

  表示寻找含有注释语句

   !--禹希初的简历-- 

  的元素 resume 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  
九、cdata()

  含义:返回所有CDATA类型的结点的集合

  示例:例如 

  resume[$any$ cdata()="禹希初的简历"]

  表示寻找含有下述语句(必须是直接子结点)

   ![CDATA[禹希初的简历]] 

  的元素 resume 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  
十、node()

  含义:返回当前上下文环境中除根结点和属性结点以外的所有结点的集合,等价于

  * | pi() | comment() | text()

  示例:寻找所有元素resume,其最后一个结点的名字为"skill"

  resume[node()[end()]!nodeName()="skill"]

  寻找所有resume元素的第一个结点:resume/node()[0]

  
十一、textnode()

  含义:返回所有文本类型的结点的集合

  示例:寻找每一个p元素的第二个文本结点

  p/textnode(1)或p!textnode(1)

  十二、text()

  含义:返回所有表示文本字符串的结点的集合,等价于"cdata()|textnode()";

  本期的内容就介绍至此,另有一个函数date()在本人的机器上一试就发生错误使浏览器自动关闭,还有一个函数pi()本人尚未找到适当的应用方法,就不介绍了,下期将讲述如何XSL中使用脚本。

来源:http://www.tulaoshi.com/n/20160219/1614872.html

延伸阅读
标签: 电脑入门
在使用excel时,我们常常会使用一些函数,本文中为大家介绍CONCATENATE函数的使用方法。 语法 CONCATENATE (text1,text2,...) Text1, text2, ... 为 1 到 30 个将要合并成单个文本项的文本项。这些文本项可以为文本字符串、数字或对单个单元格的引用。 说明 也可以用 &(和号)运算符代替函数 CONCATENATE 实现文本项的合并。 ...
标签: 电脑入门
函数名称:FLOOR 函数功能:将参数 Number 沿绝对值减小的方向向下舍入,使其等于最接近的 significance 的倍数。 函数语法:FLOOR(number,significance) 函数参数介绍: Number 所要四舍五入的数值。 Significance 基数。 参数说明: • 如果任一参数为非数值参数,则 FLOOR 将返回错误值 #VALUE!。 • 如果 number 和 signif...
标签: 电脑入门
一、ISNUMBER函数介绍 函数功能:检测参数是否为数值,返回ture或false。 函数语法:ISNUMBER(value)。 参数:如果value为数值时函数返回ture(真),否则返回false(假)。 二、ISNUMBER函数用法 实例一:无错误除法公式 如果工作表为C1设计了公式=A1/B1,一旦B1单元格没有输入除数,就会在C1中显示错误信息#DIV/0!。 这不仅看起来很不美观...
标签: excel
Excel简单介绍averageifs函数   ①打开Excel2010,源数据表格我已经制作好了,我们要计算年级班级的平均分,首先,在D15单元格输入: =AVERAGEIFS(E2:E13,A2:A13,"一年级",D2:D13,"语文") ②回车,得到结果79,我们对照源表格,可以确定平均分就是79,正确。 ③然后在D16单元格输入: =AVERAGEI...
标签: SQLServer
  这些函数允许你存取 Oracle8 和 Oracle7 数据库. 他使用 Oracle8 的点用接口 (OCI8). 使用这个扩展模块,你需要 Oracle8 客户端库文件.   这个扩展模块比标准 Oracle 模块更流畅。他支持用于 Oracle 站位符的全局和本机 PHP 变量。有完整的 LOB, 文件和 ROWID 支持,允许使用用户提供的定义的变量.   在使用这个...

经验教程

432

收藏

47
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部