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 &gt; 80"> <xsl:attribute name="bgcolor">blue</xsl:attribute><xsl:value-of select="$grade2"/></xsl:when><xsl:when test="$grade2 &lt; 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 &gt; 80"> <xsl:attribute name="bgcolor">green</xsl:attribute><xsl:value-of select="$grade2"/></xsl:if><xsl:if test="$grade2 &lt; 60"> <xsl:attribute name="bgcolor">red</xsl:attribute><xsl:value-of select="$grade2"/></xsl:if><xsl:if test="$grade2 &gt; 50 and $grade2 &lt; 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>
页:
[1]