今天我们学习XSL的各种运算符,满足编写更大灵活性的XSL样式的要求。 表一、运算符与特殊字符
表二、逻辑运算符
表三、关系运算符
示例一: 从个人简历中寻找具有具有“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 > < /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(),也许大家还不完全明了其中的含义吧?敬请关注下一课。 |
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=3467