xsl实例
发布时间:2020-12-16 05:22:17 所属栏目:百科 来源:网络整理
导读:? XSL简介 – 是XML的样式表语言 ? XSL由三部分组成 – XML文档转换:XSL Transformation,又叫XSLT ? XSLT是一种比CSS强大很多的语言,可以将XML文档转换成其他格式的文档 – 模式匹配语法:a pattern matching syntax,又叫XPath ? XPath是一种用于标识XML
?XSL简介
–是XML的样式表语言
?XSL由三部分组成
–XML文档转换:XSL Transformation,又叫XSLT
?XSLT是一种比CSS强大很多的语言,可以将XML文档转换成其他格式的文档
–模式匹配语法:a pattern matching syntax,又叫XPath
?XPath是一种用于标识XML文档各个部分的语言
–格式化对象:a formatting object interpretation,XSL FO
?XSLT简介
–XSL中最重要的部分就是XSLT
–XSLT将XML文档转换为XHTML文档或者其他XML文档
–通过XSLT,你可以从已输出的文件里添加/移除元素和属性,也可以把元素重新排列和分类,实现更多功能
?XSLT与CSS比较
–二者都可以格式化XML文档
–但是相较于XSLT,CSS有以下缺点
?不能重新排序文档中的元素
?不能判断和控制哪个元素被显示,哪个不显示
?不能统计、计算元素中的数据
–CSS适合输出较固定的最终文档,简洁,消耗资源少
–将CSS和XSLT结合起来使用:服务器端使用XSLT处理文档,在客户端使用CSS控制显示
----------------------------------xml----------------------------
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="student.xsl"?> <classes> <student> <sid>001</sid> <sname>张三</sname> <sage>78</sage> </student> <student> <sid>002</sid> <sname>李四</sname> <sage>38</sage> </student> <student> <sid>003</sid> <sname>王五</sname> <sage>43</sage> </student> <student> <sid>004</sid> <sname>朱六</sname> <sage>8</sage> </student> </classes>
-------------------------------------xsl-------------------------------
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head><title>学生列表</title></head> <body> <table width="400px"> <tr> <th>学号</th> <th>姓名</th> <th>年龄</th> </tr> <xsl:for-each select="classes/student"> <xsl:sort select="sage" order="descending"/> <tr> <td align="center"><xsl:value-of select="sid"></xsl:value-of></td> <td align="center"><xsl:value-of select="sname"></xsl:value-of></td> <td align="center"><xsl:value-of select="sid"></xsl:value-of></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>---------------------------------------------------------------------
?元素语法
–xsl:template和xsl:apply-templates
–xsl:value-of
–xsl:for-each
–xsl:if
–xsl:choose、when、otherwise
–xsl:sort
?xsl:template
–XSLT文件就是由一个个的模板组成
–模板分两部分
?匹配模式(match pattern):定义XML源文档中哪一个节点将被模板处理
?执行:定义输出的是什么格式
–语法
?<xsl:template match=pattern name=qname priority=number mode=qname>
–<!– 执行内容 -->
?</xsl:template>
?示例
–如,我们处理一个包含章节和段落的文档,用para元素定义段落,用chapter元素定义章节
–下面语句中模板匹配所有的para元素
?<xsl:template match=“para”></xsl:template>
–下面语句中模板匹配所有para元素和所有chapter元素
?<xsl:template match=“(chapter|para)”></xsl:template>
–下面语句中模板匹配所有父节点为chapter元素的para元素
?<xsl:template match=“chapter/para”></xsl:template>
–下面语句中模板匹配根节点
?<xsl:template match=“/”></xsl:template>
?xsl:apply-templates
–表示处理哪一个节点,被包含在xsl:template中
–语法
?<xsl:apply-templates select=node set-expression mode=qname>
?</xsl:apply-templates>
?示例
–<xsl:template match=“/”>
– <xsl:apply-templates select=“para”/>
– </xsl:template>
?上面代码表示模板匹配整个文档(根节点),具体执行时处理根节点下的所有para元素
–<xsl:template match=“para”>
– <p><xsl:apply-templates /></p>
–</xsl:template>
?表示模板匹配para节点,所有para的子元素都被处理
?xsl:value-of
–用来将源文档中元素的文本值写到输出文档中
?<xsl:value-of select=“节点名称”/>
?xsl:for-each
–可以循环处理被选择的节点
– <xsl:for-each select=“节点名称”>
– 其它内容
– </xsl:for-each>
?xsl:if
–类似普通程序语言的if条件语句,允许设定节点满足某个条件时,被模板处理
<xsl:if test=布尔表达式>
其它内容
</xsl:if>
?xsl:choose
–在xsl:if语法中没有else的属性,如果需要进行多项选择,可以使用xsl:choose/xsl:when/xsl:otherwise系列流程控制语法
?<xsl:choose>
? <xsl:when test=“”>
? </xsl:when>
? <xsl:otherwise>
? </xsl:otherwise>
?</xsl:choose>
?xsl:sort
–在XSLT中可以对XML源文档的元素进行重新排序
?<xsl:sort select=“排序的元素” order=“ascending/descending”/>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |