0
요약하면 각 학생 노드에 대한 테스트 표시를 계산하고 싶지만 출력은 첫 번째 학생의 표시를 올바르게 표시하고 다른 학생의 표시로 복사합니다.XSL 만 첫 번째 자식에 대한 계산 만 표시합니다.
<?xml version='1.0'?><!-- DWXMLSource="student.xml" -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>NAME</th>
<th>ID</th>
<th>PASSWORD</th>
<th>IC</th>
<th>GROUP</th>
<th>TEAM</th>
<th>PROGRAMME</th>
<th>PHONE NUMBER</th>
<th>EMAIL</th>
<th>TEST (%)</th>
<th>QUIZ (%)</th>
<th>PROJECT (%)</th>
<th>ASSIGNMENT (%)</th>
<th>TOTAL (%)</th>
</tr>
<xsl:for-each select="university/student">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="id"/></td>
<td><xsl:value-of select="pass"/></td>
<td><xsl:value-of select="ic"/></td>
<td><xsl:value-of select="group"/></td>
<td><xsl:value-of select="team"/></td>
<td><xsl:value-of select="program"/></td>
<td><xsl:value-of select="phone"/></td>
<td><xsl:value-of select="email"/></td>
<td><xsl:value-of select="(//test1 div 10) + (//test2 div 10)"/> <xsl:text>/20</xsl:text> </td>
<td><xsl:value-of select="(//quiz1 div 40) + (//quiz2 div 40) + (//quiz3 div 40) + (//quiz4 div 40)"/> <xsl:text>/10</xsl:text></td>
<td><xsl:value-of select="(//project div 5)"/> <xsl:text>/20</xsl:text> </td>
<td><xsl:value-of select="(//assignment1 div 40) + (//assignment2 div 40) + (//assignment3 div 40) + (//assignment4 div 40)"/> <xsl:text>/10</xsl:text></td>
<td><xsl:value-of select="((//test1 div 10) + (//test2 div 10)) + ((//quiz1 div 40) + (//quiz2 div 40) + (//quiz3 div 40) + (//quiz4 div 40)) + (//project div 5) + ((//assignment1 div 40) + (//assignment2 div 40) + (//assignment3 div 40) + (//assignment4 div 40))"/> <xsl:text>/60</xsl:text></td>
</tr>
</xsl:for-each>
</table>
<a href="index.php">Main Menu</a>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
당신은 계산을 무시할 수 있습니다 :
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="list_student.xsl"?>
<university>
<student>
<name>Irwan</name>
<id>8888999</id>
<pass>1111</pass>
<ic>911006</ic>
<group>12</group>
<team>2</team>
<program>cs233</program>
<phone>626134</phone>
<email>[email protected]</email>
<test1>100</test1>
<test2>100</test2>
<project>80</project>
<assignment1>90</assignment1>
<assignment2>100</assignment2>
<assignment3>100</assignment3>
<assignment4>100</assignment4>
<quiz1>10</quiz1>
<quiz2>90</quiz2>
<quiz3>80</quiz3>
<quiz4>100</quiz4>
</student>
<student>
<name>aida</name>
<id>2011585383</id>
<pass>1234</pass>
<ic>911006115640</ic>
<group>B</group>
<team>14</team>
<program>CS233</program>
<phone>0189041004</phone>
<email>[email protected]</email>
<test1>0</test1>
<test2>0</test2>
<project>100</project>
<assignment1>100</assignment1>
<assignment2>100</assignment2>
<assignment3>100</assignment3>
<assignment4>100</assignment4>
<quiz1>100</quiz1>
<quiz2>100</quiz2>
<quiz3>100</quiz3>
<quiz4>100</quiz4>
</student>
</university>
여기 내 XSL입니다 :
여기 내 XML이다. 문제는 두 학생의 점수가 다르더라도 테스트, 프로젝트 등에 대한 결과물이 동일하다는 것입니다.
두 번째 학생의 결과는 XML에서 마크를 변경 한 후에도 첫 번째 학생과 동일합니다. 이것은 해결해야 할 간단한 문제 일 수 있으며 사과드립니다. XSL에 대한 지식이 거의 없기 때문입니다.
제공되는 도움에 미리 감사드립니다.
'test1' 이전에'// '를 제거하면 안됩니까? –
이제 알겠습니다! 고맙습니다. – Citrine