XSL函数介绍(4)

王晗菲儿

王晗菲儿

2016-02-19 17:18

今天给大家分享的是由图老师小编精心为您推荐的XSL函数介绍(4),喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!
本期学习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的对象方法有一个大致的了解。

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

  一、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/ 

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

   y/ 

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

   /x 

   x 

   y/ 

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

   y/ 

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

   /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 

  
九、cdata()

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

  示例:例如 

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

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

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

  的元素 resume 

  
十、node()

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

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

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

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

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

  
十一、textnode()

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

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

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

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

  十二、text()

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

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

展开更多 50%)
分享

猜你喜欢

XSL函数介绍(4)

Web开发
XSL函数介绍(4)

XSL函数介绍(3)

Web开发
XSL函数介绍(3)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

XSL函数介绍(1)

Web开发
XSL函数介绍(1)

XSL函数介绍(2)

Web开发
XSL函数介绍(2)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

跟我学XSL(9)XSL函数二

Web开发
跟我学XSL(9)XSL函数二

跟我学XSL(7)XSL函数一

Web开发
跟我学XSL(7)XSL函数一

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

TThread

TThread

TPrinter类

TPrinter类
下拉加载更多内容 ↓