여긴 그냥 xml 부분이고
<?xml version="1.0" encoding="EUC-KR"?>
<?xml-stylesheet type="text/xsl" href="성적.xsl"?>
<result>
<subject>
<subject_name>XML 원리와응용</subject_name>
<sub_info section="2" point="3"/>
<mark attendance="88" homework="94" middle_exam="98" end_exam="95"/>
</subject>
<subject>
<subject_name>JAVA 프로그래밍</subject_name>
<sub_info section="1" point="3"/>
<mark attendance="77" homework="90" middle_exam="86" end_exam="91"/>
</subject>
<subject>
<subject_name>운영체제</subject_name>
<sub_info section="1" point="3"/>
<mark attendance="70" homework="80" middle_exam="96" end_exam="79"/>
</subject>
<subject>
<subject_name>데이터압축</subject_name>
<sub_info section="2" point="3"/>
<mark attendance="83" homework="75" middle_exam="62" end_exam="80"/>
</subject>
<subject>
<subject_name>XML프로그래밍</subject_name>
<sub_info section="1" point="3"/>
<mark attendance="100" homework="100" middle_exam="100" end_exam="100"/>
</subject>
</result>
아랫 부분이 xsl 부분인데 성적별로 셀 전체에 색을 넣어서 구분을 하고 싶은데 셀이 깨진다고 해야할까;
자꾸 윗부분으로 올라가버리네요ㅠㅠ
막 손대봐도 잘안되서 그러는데 답을 알려달라는것은 아니고
뭐가 잘못됬는지 가르침좀 주세요 ㅠㅠ
<?xml version="1.0" encoding="EUC-KR"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" indent="yes"/>
<xsl:template match="result">
<html>
<head>
<title>성적표</title>
<style type="text/css">
td { font-size: 9pt; line-height: 18pt; text-align: center }
td.title { color: #550000; background-color: #F8F3F4; font-weight: bolder }
</style>
</head>
<body>
<table width="600" border="1" cellpadding="0" cellspacing="0" bordercolor="black">
<tr>
<td class="title">이수<br/>구분</td>
<td class="title">교과목명</td>
<td class="title">학점</td>
<td class="title">출석<br/>점수</td>
<td class="title">과제<br/>점수</td>
<td class="title">중간<br/>고사</td>
<td class="title">기말<br/>고사</td>
<td class="title">총점</td>
<td class="title">평균</td>
<td class="title">성적</td>
</tr>
<xsl:for-each select="subject">
<xsl:sort data-type="number" order="descending" select="평균"/>
<tr>
<td>
<xsl:apply-templates select="sub_info/@section" />
</td>
<td>
<xsl:value-of select="subject_name" />
</td>
<td>
<xsl:value-of select="sub_info/@point" />
</td>
<xsl:apply-templates select="mark" />
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="sub_info/@section">
<xsl:choose>
<xsl:when test=".=1">
<xsl:text>전공</xsl:text>
</xsl:when>
<xsl:when test=".=2">
<xsl:text>교양</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>선택</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="mark">
<td>
<xsl:value-of select="@attendance" />
</td>
<td>
<xsl:if test="true()!=current()[@homework]">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="@homework" />
</td>
<td>
<xsl:if test="true()!=current()[@middle_exam]">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="@middle_exam" />
</td>
<td>
<xsl:if test="true()!=current()[@end_exam]">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="@end_exam" />
</td>
<td>
<xsl:variable name="sum">
<xsl:value-of select="sum(@attendance)+sum(@homework)+sum(@middle_exam)+sum(@end_exam)" />
</xsl:variable>
<xsl:value-of select="$sum" />
</td>
<td>
<xsl:variable name="ava">
<xsl:value-of select="format-number($sum div 4, '##0.0')" />
</xsl:variable>
<xsl:value-of select="$ava" />
</td>
<td>
<xsl:call-template name="average">
<xsl:with-param name="ava_param" select="$ava" />
</xsl:call-template>
</td>
</xsl:template>
<xsl:template name="average">
<xsl:param name="ava_param" />
<xsl:choose>
<xsl:when test="$ava_param > 95">
<tr bgcolor="yellow"><xsl:text>A+</xsl:text></tr>
</xsl:when>
<xsl:when test="$ava_param > 90">
<tr bgcolor="yellow"><xsl:text>A0</xsl:text></tr>
</xsl:when>
<xsl:when test="$ava_param > 85">
<tr bgcolor="red"><xsl:text>B+</xsl:text></tr>
</xsl:when>
<xsl:when test="$ava_param > 80">
<tr bgcolor="red"><xsl:text>B0</xsl:text></tr>
</xsl:when>
<xsl:when test="$ava_param > 75">
<tr bgcolor="blue"><xsl:text>C+</xsl:text></tr>
</xsl:when>
<xsl:when test="$ava_param > 70">
<tr bgcolor="blue"><xsl:text>C0</xsl:text></tr>
</xsl:when>
<xsl:when test="$ava_param > 65">
<xsl:text>D+</xsl:text>
</xsl:when>
<xsl:when test="$ava_param > 60">
<xsl:text>D0</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>F</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
댓글 0