XML与XSL变换

一.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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值