一.XML关心数据结构,而XSL关心数据的显示。
在一个XML文件中引入XSL文件需要如下的语句。
在一个xsl中,必须以如下的语句来开头。
在XSL中,可以声明模板,而在文档的其它地方来引入模板。
<xsl:template match=”XML中匹配的相应的标记”></xsl:template>
模板调用
1. 带select属性的模板调用标记
2. 不带select属性的模板调用标记
二.常用的XSL标记
会在显示的文本的两端显示标记的名称。
会显示类似于如下的标记形式
<标记 />
<xsl:choose>标记可以给出多个判断条件
三.一个例子
XML文件
XSL文件
在一个XML文件中引入XSL文件需要如下的语句。
<?xml-stylesheet href=”XXX.xsl” type=”text/xsl” ?>
在一个xsl中,必须以如下的语句来开头。
<?xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl>
<xsl:template match=”/”>
</xsl:template>
</xsl:stylesheet>
在XSL中,可以声明模板,而在文档的其它地方来引入模板。
<xsl:template match=”XML中匹配的相应的标记”></xsl:template>
模板调用
1. 带select属性的模板调用标记
<xsl:apply-templates select=”标记匹配模式” />
2. 不带select属性的模板调用标记
<xsl:apply-templates />
二.常用的XSL标记
<xsl:for-each select=””></xsl:for-each>
<xsl:value-of select=”.” />
此时这个xsl:value-of标记会显示当前节点及其子节点的文本
<xsl:value-of select=”.//” />
<xsl:copy>
<xsl:value-of />
</xsl:copy>
会在显示的文本的两端显示标记的名称。
<xsl:copy />
会显示类似于如下的标记形式
<标记 />
<xsl:if test=”条件”>
内容
</xsl:if>
<xsl:choose>标记可以给出多个判断条件
<xsl:choose>
<xsl:when test=””></xsl:when>
<xsl:when test=””></xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
三.一个例子
XML文件
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="Cha5_8.xsl" type="text/xsl" ?>
<教学楼>
<教室>
<号码>2101</号码>
<桌子 width="228" height="110" length="30">
<数量>50张</数量>
</桌子>
<椅子>
<数量>50把</数量>
</椅子>
</教室>
<语音室>
<号码>2301</号码>
<桌子 width="123" height="100" length="30">
<数量>40张</数量>
</桌子>
<椅子>
<数量>40把</数量>
</椅子>
</语音室>
<老师休息室>
<号码>2401</号码>
<桌子 width="23" height="10" length="30">
<数量>5张</数量>
</桌子>
<椅子>
<数量>3把</数量>
</椅子>
</老师休息室>
</教学楼>
XSL文件
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<table border="1">
<xsl:apply-templates select="教学楼/*" />
</table>
</html>
</xsl:template>
<xsl:template match="//*">
<tr>
<xsl:if test="./桌子[@width$lt$124$and$@height$le$100]">
<td>
<xsl:copy />
</td>
<xsl:for-each select="./*">
<td>
<xsl:copy>
<xsl:value-of />
</xsl:copy>
</td>
</xsl:for-each>
</xsl:if>
</tr>
</xsl:template>
</xsl:stylesheet>