跟我学XSL(二)第1/4页

表一、运算符与特殊字符


















































 运算符 描述

/

选择子元素,返回左侧元素的直接子元素;如果"/"位于最左侧表示选择根结点的直接子元素

//

递归下降,不论深度,搜索指定的元素;如果位于最左侧表示从根结点出发递归下降搜索指定元素

.

表示当前元素

*

通配符,选择任意元素,不考虑名字

@

取得属性值,作为属性名的前缀

@*

通配符,选择任意属性,不考虑名字

:

名字作用范围分隔符,将名字作用范围前缀与元素或属性名分隔开来

!*

在相关节点上应用指定方法

()*

分组,明确指定优先顺序

[]

应用过滤样式

[]*

下标运算符,用于在集合中指示元素

  表二、逻辑运算符


















 可选方式 描述

and $and$ 或 &&

逻辑与

or $or$ 或 ||

逻辑或

not() $not$

逻辑非

  表三、关系运算符


































































 可选方式 描述

= 或 $eq$

相等

= 或 $ieq$

相等(不区分大小写)

!= 或 $ne$

不等

$ine$

不等(不区分大小写)

< 或 $lt$

小于

$ilt$

小于(不区分大小写)

<= 或 $le$

小于等于

$ile$

小于等于(不区分大小写)

> 或 $gt$

大于

$igt$

大于(不区分大小写)

>= 或 $ge$

大于等于

$ige$

大于等于(不区分大小写)

$all$

集合运算符,如果集合中所有项目均满足条件则返回"真"

$any$

集合运算符,如果集合中任意项目满足条件则返回"真"

|

集合运算符,返回两个集合的联合

  示例一:

  从个人简历中寻找具有具有"WEB开发"技能的人的姓名与E-Mail。假设文档结构如下所示:

<document>
<resume>
<name>name</name>
<sex>sex</sex>
<birthday>birthday</birthday>
<skill>skill1</skill>
<skill>skill2</skill2>

<skill>skilln</skill>
</resume>
<resume>

</resume>

</document>

  为从以上结构的个人简历中寻找出所有具有WEB开发"技能的人的姓名与E-Mail的XSL文档结构如下:

<TABLE border="1" cellspacing="0">
<TH>姓名</TH><TH>E-Mail</TH>
<xsl:for-each select="resume [$any$skill="WEB开发"]">
<TR><TD><xsl:value-of select="name"/></TD>
<TD><xsl:value-of select="E-Mail"/></TD>
</TR>
</xsl:for-each>
</TABLE>

  说明:

  1.[ ] ── 表示选择条件,只有满足条件的个人简历才被显示。

  2.$any$ ── 由于每个人有多种技能,故加$any$作为前缀,以使每个人所有技能都能被比较。

  3.skill='WEB开发' ── 筛选条件。

  示例二、

  仍上面的XML文档为例,如果欲选择1977/1/1之前出生的人的姓名、技能与E-Mail,相应的XSL文档结构如下(假定生日格式为yyyy/mm/dd):

<TABLE border="1" cellspacing="0">
<TH>姓名</TH><TH>技能</TH><TH>E-Mail</TH>
<xsl:for-each select="resume[birthday$lt$"1977/1/1"]">
<TR>
<TD><xsl:value-of select="name"/></TD>
<TD>
<xsl:value-of select="skill[0]"/>
<xsl:for-each select="skill[index()>0]">、
<xsl:value-of select="."/>
</xsl:for-each>
</TD>
<TD><xsl:value-of select="E-Mail"/></TD>
</TR>
</xsl:for-each>
</TABLE>

  说明:

  1.birthday $lt$ '1977/1/1' ── 搜索条件,在此处使用"< "会错误,故使用"$lt$"表示小于。

  2.skill [0] ── 表示选择skill的第一项。

  3.skill [index()>0] ── 表示选择skill的第二项以后(包括第二项)的项目。

  4.xsl:value-of select="." ── 表示选择当前标记的值。

  相信大家应该注意到,在前面以及本次的例子中出现了一些函数,如index()、formatIndex()、childNumber(),也许大家还不完全明了其中的含义吧?敬请关注下一课。

当前1/4页 1234下一页阅读全文

(0)

相关推荐

  • 跟我学XSL(二)第1/4页

    表一.运算符与特殊字符  运算符 描述 / 选择子元素,返回左侧元素的直接子元素:如果"/"位于最左侧表示选择根结点的直接子元素 // 递归下降,不论深度,搜索指定的元素:如果位于最左侧表示从根结点出发递归下降搜索指定元素 . 表示当前元素 * 通配符,选择任意元素,不考虑名字 @ 取得属性值,作为属性名的前缀 @* 通配符,选择任意属性,不考虑名字 : 名字作用范围分隔符,将名字作用范围前缀与元素或属性名分隔开来 !* 在相关节点上应用指定方法 ()* 分组,明确指定优先顺序 []

  • 跟我学XSL(一)第1/5页

    随着Internet的发展,越来越多的信息进入互联网,信息的交换.检索.保存及再利用等迫切的需求使HTML这种最常用的标记语言已越来越捉襟见肘.HTML将数据内容与表现融为一体,可修改性.数据可检索性差,而XML借鉴了HTML与数据库.程序语言的优点,将内容与表现分开,不仅使检索更为方便,更主要的是用户之间数据的交换更加方便,可重用性更强. XML是一种元标记语言,没有许多固定的标记,为WEB开发人员提供了更大的灵活性.当我们使用HTML时,标记只是简单的表示内容的显示形式,而与表示的内容没有任

  • 非常不错的WAP常见问题问答大全(二)第1/3页

    WAP常见问题问答大全(二) 二.关于WML的常见问答 1. 简单说WML代表什么?     WML代表"Wireless Markup Language".WML就是无线标记语言(Wireless Markup Language),内置于移动设备中的微型浏览器能够解释这种标记语言.虽然它和HTML语言很相像,但WML其实是XML的一个应用子集. 2. 什么是WML?     WML代表Wireless Markup Language,就象HTML对普通的Web浏览器一样.有人说它是基

  • DB2常用傻瓜问题1000问(二)第1/2页

    正在看的db2教程是:DB2常用傻瓜问题1000问(二).大家在应用DB2的时候可能会遇到一些看似简单的问题,特别对新手来说,我在此简单的总结一下,发布给大家,希望对大家能有所帮助,同时也欢迎大家一起探讨,共同发展,共同进步! 以下主要以DB27.X为基础的.以下的字符为小写. 本文对DB2高手来说是不用看的. 所有字符为小写. 51.安装DB2默认的事例名称是? 在WINDOWS或OS/2中默认的是DB2 在LINUX或UNIX环境下默认的是DB2INST1 52.安装后的默认帐户是? 在WI

  • PHP和正则表达式教程集合之二第1/2页

    正则表达式快速入门(二) [导读]在本文里,我们主要介绍子模式(subpatterns),逆向引用(Back references)和量词(quantifiers) 在上篇文章里,我们介绍了正则表达式的模式修正符与元字符,细心的读者也许会发现,这部分介绍的非常简略,而且很少有实际的例子的讲解.这主要是因为网上现有的正则表达式资料都对这部分都有详细的介绍和众多的例子,如果觉得对前一部分缺乏了解可以参看这些资料.本文希望可以尽可能多涉及一些较高级的正则表达式特性. 在本文里,我们主要介绍子模式(su

  • 彻底掌握IIS6.0功能及应用详解图文教程二第1/4页

    二.配置数据 在IIS 5.0和IIS 4.0中,配置数据库采用二进制文件结构,但IIS 6.0放弃了这一做法.IIS 6.0的配置数据由两个XML文件构成:一个是Metabase.xml,包含IIS 6.0服务器的配置信息:另一个是mbschema.xml,包含配置数据的模式定义.IIS管理器提供了一项新的功能,允许保存配置数据副本,只要右击Web网站,然后选择"所有任务"→"将配置保存到一个文件",然后指定配置数据副本的文件名字和保存路径即可.按照这种方式保存配

  • JS小练习代码之二第1/2页

    相关的源代码如下: 1.beginFormPanel.js(作用:外层html文件中表单的展现) <script> var beginFormPanel = Ext.extend(Ext.form.FormPanel,{ constructor:function() { beginFormPanel.superclass.constructor.call ( this, { title:"myForm(绝不裸奔)", width:418, height:180, frame

  • PHP单元测试利器 PHPUNIT深入用法(二)第1/2页

    1.markTestSkipped和markTestIncomplete 在phpunit中,有两个有用的方法markTestSkipped和markTestIncomplete.它们能允许你编写的单元测试中不单是只有通过和失败两种结果.markTestSkipped能让PHPUNIT不去执行某个已经编写好的测试方法.举个例子说明,比如下面的程序: #div_code img{border:0px;} <?phppublic function testThisMightHaveADb(){  $

  • javascript xml xsl取值及数据修改第1/2页

    1.example.xml--主要数据文件 <?xml version="1.0" encoding="UTF-8"?> <?xml:stylesheet type="text/xsl" href="example.xsl"?> <projects id="1">     <project title="一级标题1" index="1&

  • ASP XML编程objXML.async = False第1/2页

    从技术上来说,在ASP环境中,读入并管理XML文本的主要方法有三种: 创建MSXML对象,并且将XML文档载入DOM: 使用服务器端嵌入(Server-Side Include,SSI): 就如同访问其他文本文件一样,使用FileSystemObject来访问XML文档: 第四种方法是在客户端创建内置的数据岛,有关的内容以后讲解. 一.使用DOM 为了在ASP代码中使用DOM,需要创建一个Microsoft XML分析器的实例,它像任何别的COM组件一样被实例化,在页面的开始处顼要增加几行标准代

随机推荐