六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 11|回复: 0

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

[复制链接]

升级  73.33%

46

主题

46

主题

46

主题

秀才

Rank: 2

积分
160
 楼主| 发表于 2013-2-3 10:41:54 | 显示全部楼层 |阅读模式
在这里不在多说,具体看例子就知道了(用了两种模板形式),通过两个例子就可以对比不同,用浏览器浏览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>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表