第五章 可扩展样式单语言_第1页
第五章 可扩展样式单语言_第2页
第五章 可扩展样式单语言_第3页
第五章 可扩展样式单语言_第4页
第五章 可扩展样式单语言_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《XML技术基础》第五章可扩展样式单语言回顾XML关于文档浏览的基本思想是将数据与数据的显示分别定义,文档的显示实际上是通过一个样式单来描述的。

<?xml-stylesheettype="..."href="..."?>W3C已经给出了两种样式单语言的推荐标准:层叠样式单CSS可扩展样式单语言XSL回顾:CSS的语法定义CSS的基本格式如下:

Selector{property:value;property:value;...}

Selector:选择符,被施加样式的元素,可以是标记(tag)、.类名(class)、#标识名(id)等Property:样式属性,可以是颜色、字体、背景等等。value:样式属性取值,决定样式结果。例如本课目标:XSLCSS及其语法;XSL概述CSS与XSL的比较XML文档结构树XSL的组成与工作原理XSL的基本结构XSL模板XSL的元素语法动态选择XML文档的显示样式小结XSL的元素语法XSL的动态功能是通过XSL预定义元素来实现的,分为以下四类:匹配模式:这些元素都有match属性定义模板<xsl:template>选择模式:这些元素都有select属性节点输出语句<xsl:value-of>循环判断语句<xsl:for-each>排序语名<xsl:sort>调用模板<xsl:apply-templates>测试模式:这些元素都有test属性条件判断语句<xsl:if>多条件判断语句<xsl:choose>其他在结果树中动态创建各类节点导入外部XSL文档返回目标更多的XSL元素语法见XPATHViewer节点输出语句<xsl:value-of>用来提取输出XML文件中被选择的元素或属性的内容语法:功能:输出指定节点的取值,用select属性进行限定<xsl:value-ofselect=“节点"/><?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns="/tr/REC-html40"><xsl:templatematch="/"><pstyle="color:blue">

<xsl:value-ofselect=“唐诗/五言绝句/作者”/>

<xsl:value-ofselect="唐诗/五言绝句/标题"/></p><p>

<xsl:value-ofselect="唐诗/五言绝句/内容"/></p></xsl:template></xsl:stylesheet><xsl:value-of>示例5.9.xsl返回到语法循环判断语句<xsl:for-each>循环访问多个节点,并按模板规则输出节点语法:<xsl:for-eachselect=“节点”> <!--输出内容--></xsl:for-each>order-by属性可将多个节点按某关键数据进行排序循环判断语句<xsl:for-each><?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns="/tr/REC-html40"><xsl:templatematch="/"><xsl:for-eachselect="唐诗/五言绝句"><pstyle="color:blue"><xsl:value-ofselect="作者"/>

<xsl:value-ofselect="标题"/></p><p><xsl:value-ofselect="内容"/></p></xsl:for-each></xsl:template></xsl:stylesheet>返回到语法5.10.xsl<xsl:sort><xsl:sort>元素用于对结果进行排序。<xsl:sort>总是位于<xsl:for-each>或<xsl:apply-templates>内部,对xsl:for-each或xsl:apply-templates元素选择的节点集进行排序。<xsl:sort>的语法格式为:<xsl:sortselect="XPathexpress"data-type="text|number|qname"order="ascending|descending"case-order="upper-first|lower-first"/><xsl:sort>(1)按字母顺序排序。

<xsl:sortorder=“ascending”select=“@id”/><xsl:sortorder=“descending”select=“name”/>(2)按大小写排序。<xsl:sortcase-order=“upper-first”select=“@id”/><xsl:sortcase-order=“lower-first”select=“name”/>(3)按数据类型排序。<xsl:sortdata-type="text"select="@id"/>

如对一组id数据101,2,44,305来说,排序结果是101,2,305,44。<xsl:sortdata-type="number"select="@id"/>

如对上面一组数据按数据类型排序,则排序结果是2,44,101,305。<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:templatematch="/"><tableborder="1"align="center"><caption>成绩排名表</caption><tbody><xsl:apply-templatesselect="roster"/></tbody></table></xsl:template><xsl:templatematch="roster"><xsl:for-eachselect="student">

<xsl:sortselect="score"order="descending"data-type="number"/><tr><td><xsl:value-ofselect="name"/></td><td><xsl:value-ofselect="score"/></td> </tr></xsl:for-each></xsl:template></xsl:stylesheet>5.11.xsl返回到语法单条件判断语句<xsl:if>对匹配条件进行判断,如果为真就执行条件内部的规则。语法用元素的名称作为匹配条件<xsl:iftest="元素名称">用元素内容作为匹配条件<xsl:iftest="元素名称='元素内容'">用元素的属性值作为匹配条件<xsl:iftest=“@属性名称[.='属性值']">5.12.xsl返回到语法多条件判断语句多条件的分支判断(类似VB中的select语句)语法<xsl:choose> <xsl:whentest=“匹配模式”> <!--输出内容--> </xsl:when> <xsl:whentest=“匹配模式”> <!--输出内容--> </xsl:when> …. <xsl:otherwise> <!--输出内容--> </xsl:otherwise></xsl:choose>5.13.xsl返回到语法在结果树中动态添加注释XSL是动态的样式单语言,用户不仅可以从源XML文档里提取相关的数据,而且可以直接在结果树中动态地创建各类节点:<xsl:comment>元素用于在结果树中创建注释节点;<xsl:element>元素用于在输出文档中创建元素节点;<xsl:attribute>元素用于向元素添加属性;<xsl:processing-instruction>元素可向输出写一条处理指令,动态生成处理指令节点;<xsl:text>元素用于向输出写文本,通过样式表生成文本节点。动态创建标记及设置属性动态增加元素

<xsl:elementname=“元素名”>

元素值

</xsl:element>动态增加属性:

<元素>

<xsl:attributename=“属性名“>属性值</xsl:attribute>

</元素>例:

<tr>

<xsl:attributename=“title”>

<!--属性值放在这-->

</xsl:attribute>

</tr>5.14.xsl返回到语法导入外部XSL文档XSL提供了两个元素允许用户在XSL文档中导入外部样式单。1、xsl:include元素xsl:include元素应用包含机制,直接将外部的样式单复制到xsl:include元素所在的位置。<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:include

href=“URI"/>……</xsl:template>

只能作为顶级元素来使用xsl:include元素例题<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns="/tr/REC-html40"><xsl:templatematch="/"> <xsl:for-eachselect="唐诗/五言绝句"> <xsl:apply-templatesselect="标题"/> <xsl:apply-templatesselect="内容"/></xsl:for-each></xsl:template><xsl:templatematch="标题"><Pstyle="color:blue;font-size:30"><xsl:value-ofselect="."/></P></xsl:template><xsl:include

href="included.xsl"/></xsl:stylesheet>included.xsl<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:templatematch="内容"><Pstyle="color:red"><xsl:value-ofselect="."/></P></xsl:template></xsl:stylesheet>导入外部XSL文档2、xsl:import元素xsl:import元素用于导入外部的样式单,被导入的样式单规则总是比导入者的规则低,导入者可以使用xsl:apply-imports来应用导入的样式单。<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:import

href=“URI"/>……<xsl:templatematch=“节点"><xsl:apply-imports/></xsl:template></xsl:template>

只能作为顶级元素来使用xsl:import元素例题<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns="/tr/REC-html40"><xsl:import

href="imported.xsl"/><xsl:templatematch="/"> <xsl:for-eachselect="唐诗/五言绝句"> <xsl:apply-templatesselect="标题"/> <xsl:apply-templatesselect="内容"/></xsl:for-each></xsl:template><xsl:templatematch="标题"><xsl:apply-imports/></xsl:template><xsl:include

href="included.xsl"/></xsl:stylesheet>

imported.xsl<?xmlversion="1.0"encoding="UTF-8"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns:fo="/1999/XSL/Format"> <xsl:templatematch="标题"> <Pstyle="color:blue;font-size:30"> <xsl:value-ofselect="."/> </P> </xsl:template></xsl:stylesheet>返回到语法动态选择XML文档的显示样式table8-21.xsllist8-20.xsl8.18.xml<?xmlversion="1.0"encoding="gb2312"?><网上书屋><书籍><书名>RedHatLinux系统管理大全</书名><作者>ThomasSchenk</作者><出版社>机械工业出版社</出版社></书籍><书籍><书名>中文版WindowsNT技术支持培训教程</书名><作者>MicrosoftPress</作者><出版社>人民邮电出版社</出版社></书籍>……</网上书屋>list8-20.xsl<?xmlversion='1.0'encoding="gb2312"?><xsl:stylesheet

xmlns:xsl="/TR/WD-xsl"

xmlns="/TR/REC-html40"><xsl:templatematch="/"><html><head> <title>网上书屋</title></head><body><xsl:apply-templates/></body></html></xsl:template><xsl:templatematch="网上书屋"><h1>阿当网上书屋</h1><ol><xsl:apply-templates/> </ol></xsl:template><xsl:templatematch="书籍"><li><b><xsl:value-ofselect="书名"/></b></li><br/>作者:<xsl:value-ofselect="作者"/><br/>出版社:<xsl:value-ofselect="出版社"/></xsl:template></xsl:stylesheet>table8-21.xsl<?xmlversion='1.0'encoding="gb2312"?><xsl:stylesheet

xmlns:xsl="/TR/WD-xsl"

xmlns="/TR/REC-html40"><xsl:templatematch="/"><html><head> <title>网上书屋</title></head><body><xsl:apply-templates/></body></html></xsl:template><xsl:templatematch="网上书屋"><center><h1>阿当网上书屋</h1><tableborder="1"><th>书名</th><th>作者</th><th>出版社</th><xsl:apply-templates/> </table></center></xsl:template><xsl:templatematch="分类"><xsl:apply-templates/> </xsl:template><xsl:templatematch="书籍"><tr><td><xsl:value-ofselect="书名"/></td><td><xsl:value-ofselect="作者"/></td><td><xsl:value-ofselect="出版社"/></td></tr></xsl:template></xsl:stylesheet>DSO_XSL8-22.html<html><head><title>DSO与XSL转换</title><scriptlanguage="JavaScript">functionload1(){

var

xmlDso=sdb.XMLDocument;

var

xslDso=Styl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论