File: Data.xml
<?xml version="1.0" standalone="no" ?>
<transcript>
<student id="STU12345" name="name 1" status="active">
<home_address>35 Wall Street, Wonderland, NJ</home_address>
<interests>
<interest>interest 1</interest>
<interest>interest 2</interest>
<interest>interest 3</interest>
</interests>
</student>
<term>
<heading name="Winter 1999" />
<course>
<course-name>course 1</course-name>
<grade>A-</grade>
<credits>4</credits>
</course>
<course>
<course-name>course 2</course-name>
<grade>B+</grade>
<credits>3</credits>
</course>
</term>
<term>
<heading name="Spring 1999" />
<course>
<course-name>Physics for Poets</course-name>
<grade>A</grade>
<credits>10</credits>
</course>
<course>
<course-name>Poetry for Physicists</course-name>
<grade>C+</grade>
<credits>5</credits>
</course>
</term>
<summary>summary</summary>
<comments>
comments
</comments>
</transcript>
File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="transcript">
<HTML><BODY>
<xsl:apply-templates select="student" />
<HR/>
<TABLE ALIGN="left" BORDER="1" CELLPADDING="4">
<TR>
<TH>Course Name</TH>
<TH>Grade</TH>
<TH ALIGN="right">Credits</TH>
</TR>
<xsl:for-each select="term/course">
<xsl:sort select="credits" data-type="number" />
<xsl:apply-templates select="." />
</xsl:for-each>
</TABLE>
</BODY></HTML>
</xsl:template>
<xsl:template match="student">
<FONT SIZE="6"><B>Student Transcript</B></FONT><P/>
<FONT SIZE="4"><B>Name: <I>
<xsl:value-of select="@name" />
</I><BR/>
ID: <I>
<xsl:value-of select="@id" />
</I></B></FONT><P/>
</xsl:template>
<xsl:template match="course">
<TR>
<TD><xsl:value-of select="course-name" /></TD>
<TD><xsl:value-of select="grade" /></TD>
<TD ALIGN="right"><xsl:value-of select="credits" /></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Output:
<HTML>
<BODY><FONT SIZE="6"><B>Student Transcript</B></FONT><P></P><FONT SIZE="4"><B>Name: <I>name 1</I><BR>
ID: <I>STU12345</I></B></FONT><P></P>
<HR>
<TABLE ALIGN="left" BORDER="1" CELLPADDING="4">
<TR>
<TH>Course Name</TH>
<TH>Grade</TH>
<TH ALIGN="right">Credits</TH>
</TR>
<TR>
<TD>course 2</TD>
<TD>B+</TD>
<TD ALIGN="right">3</TD>
</TR>
<TR>
<TD>course 1</TD>
<TD>A-</TD>
<TD ALIGN="right">4</TD>
</TR>
<TR>
<TD>Poetry for Physicists</TD>
<TD>C+</TD>
<TD ALIGN="right">5</TD>
</TR>
<TR>
<TD>Physics for Poets</TD>
<TD>A</TD>
<TD ALIGN="right">10</TD>
</TR>
</TABLE>
</BODY>
</HTML>
|