xsl基础学习(模板...)

在这里不在多说,具体看例子就知道了(用了两种模板形式),通过两个例子就可以对比不同,用浏览器浏览xml文件即可.
例子1:
grade.xml文件
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="grade.xsl"?>

<root>
<student name="zhangsan" Curriculum="Chinese" grade="80" Curriculum1="sdf" grade1="80" grade2="90"/>
<student>
<name>lisi1</name>
<Curriculum>����Chinese</Curriculum>
<grade>60</grade>
<Curriculum1>����ssdfsd</Curriculum1>
<grade1>63</grade1>
<grade2>67</grade2>
</student>
<student>
<name>lisi2</name>
<Curriculum>����Chinese</Curriculum>
<grade>70</grade>
<Curriculum1>����ssdfsd</Curriculum1>
<grade1>57</grade1>
<grade2>89</grade2>
</student>
<student>
<name>lisi3</name>
<Curriculum>����Chinese</Curriculum>
<grade>77</grade>
<Curriculum1>����ssdfsd</Curriculum1>
<grade1>84</grade1>
<grade2>57</grade2>
</student>
</root>


grade.xsl:
<?xml version="1.0" encoding="gbk" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsl2="http://www.w3.org/TR/WD-xsl" xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0">
<xsl:output method="html" encoding="gbk" />

<xsl:template match="/root">
<html>
<body>
<table border='1' cellpadding='4' cellspacing='1' width="100%" >
<tr><td colspan="6" align="center">下面的是节点(具体看xml文件)</td></tr>
<tr>
<td>name</td>
<td>Curriculum</td>
<td>grade</td>
<td>Curriculum1</td>
<td>grade1</td>
<td>grade2</td>

</tr>
<xsl:for-each select="./student">
<tr>
<td><xsl:value-of select="name" /></td><!--这样是读取节点-->
<td><xsl:value-of select="Curriculum" /></td>
<td><xsl:value-of select="grade" /></td>
<td><xsl:value-of select="Curriculum1" /></td>
<td><xsl:value-of select="grade1" /></td>
<!--<td><xsl:value-of select="grade2" /></td> -->
<!--<td><xsl:apply-templates select="grade1" /></td>模板调用形式(apply-templates)在循环中会出现问题,要用下面形式的模板的才没有问题-->
<td>
<xsl:call-template name="thisGrade2" >
<xsl:with-param name="grade2" select="./grade2"/>
</xsl:call-template>
</td>
</tr>
</xsl:for-each>
<tr><td colspan="6" align="center">下面的是属性(具体看xml文件)</td></tr>
<!--这样是读取属性-->
<xsl:for-each select="./student">
<tr>
<td><xsl:value-of select="@name" /></td>
<td><xsl:value-of select="@Curriculum" /></td>
<td><xsl:value-of select="@grade" /></td>
<td><xsl:value-of select="@Curriculum1" /></td>
<td><xsl:value-of select="@grade1" /></td>
<td><xsl:value-of select="@grade2" /></td>
</tr>
</xsl:for-each>

</table>
</body>
</html>
</xsl:template>
<!--
<xsl:template match="/root/student/grade1grade1">
<xsl:value-of select="/root/student/grade1"/>
</xsl:template>
-->
<xsl:template name="thisGrade2">
<xsl:param name="grade2" select="0" />
<xsl:choose>
<xsl:when test="$grade2 > 80">
<xsl:attribute name="bgcolor">blue</xsl:attribute><xsl:value-of select="$grade2"/>
</xsl:when>
<xsl:when test="$grade2 < 60">
<xsl:attribute name="bgcolor">red</xsl:attribute><xsl:value-of select="$grade2"/>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="bgcolor">green</xsl:attribute><xsl:value-of select="$grade2"/>
</xsl:otherwise>
</xsl:choose>
<!--
<xsl:if test="$grade2 > 80">
<xsl:attribute name="bgcolor">green</xsl:attribute><xsl:value-of select="$grade2"/>
</xsl:if>
<xsl:if test="$grade2 < 60">
<xsl:attribute name="bgcolor">red</xsl:attribute><xsl:value-of select="$grade2"/>
</xsl:if>
<xsl:if test="$grade2 > 50 and $grade2 < 80 ">
<xsl:attribute name="bgcolor">blue</xsl:attribute><xsl:value-of select="$grade2"/>
</xsl:if>
<xsl:value-of select="$grade2"/>
-->
</xsl:template>

</xsl:stylesheet>


例子2(这是网上考来的):
resume.xml
<?xml version="1.0" encoding="GB2312"?>
<?xml:stylesheet type="text/xsl" href="resume_template.xsl"?>
<document>
<resume>
<name>禹希初</name>
<sex>男</sex>
<birthday>1977.5</birthday>
<skill>数据库设计与维护</skill>
<skill>WEB开发</skill>
</resume>
</document>


resume.xsl:

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<!--根模板-->
<xsl:template match="/">
<HTML><HEAD><TITLE>个人简历</TITLE></HEAD>
<BODY>
<xsl:apply-templates select="document/resume"/>
</BODY>
</HTML>
</xsl:template>
<!--简历模板-->
<xsl:template match="resume">
<TABLE border="1" cellspacing="0">
<CAPTION>个人简历(
<xsl:eval>formatIndex(childNumber(this), "I")</xsl:eval>
)</CAPTION>
<xsl:apply-templates select="name" />
<xsl:apply-templates select="sex" />
<xsl:apply-templates select="birthday" />
<TR/>
<TD>技能</TD><TD COLSPAN="5">
<TABLE cellspacing="0">
<xsl:apply-templates select="skill"/>
</TABLE>
</TD>
</TABLE>
<BR/>
</xsl:template>
<!--姓名模板-->
<xsl:template match="name"><TD>姓名</TD>
<TD><xsl:value-of/></TD>
</xsl:template>
<!--性别模板-->
<xsl:template match="sex"><TD>性别</TD>
<TD><xsl:value-of/></TD>
</xsl:template>
<!--生日模板-->
<xsl:template match="birthday"><TD>生日</TD>
<TD><xsl:value-of/></TD>
</xsl:template>
<!--技能模板-->
<xsl:template match="skill">
<TR><TD><xsl:value-of/></TD></TR>
</xsl:template>
</xsl:stylesheet>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值