我对XML和XSLT非常陌生,并且很难找到如何将所有名为course_num的内容放入一个单元格中,每个单元格用逗号分隔(每个人都拥有它自己拥有它里面有课程编号的单元格。)
这是我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<courses>
<course acad_year="2012" term_id="1" crn="108">
<course_group>COMP</course_group>
<course_num>Ncomp</course_num>
<course_num>Hcomp</course_num>
<course_num>Scomp</course_num>
<title>XML Intro</title>
<meeting>
<meeting_begin>1820</meeting_begin>
<meeting_end>2020</meeting_end>
<location> LCOMP</location>
</meeting>
<course_head>
<person person_id="128">
<person_name>Antonio Molay</person_name>
<person_lname>Molay</person_lname>
<person_fname>Antonio</person_fname>
<person_title> College Instructor</person_title>
</person>
</course_head>
</course>
这是我的XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<head>
<title>College Courses</title>
</head>
<body>
<table>
<thead>
<tr bgcolor="yellow">
<th>Course ID</th>
<th>Year</th>
<th>Course Title</th>
<th>Teacher</th>
<th>Meeting Days</th>
<th>Time</th>
<th>Location</th>
</tr>
</thead>
<tbody>
<xsl:apply-templates />
</tbody>
</table>
</body>
</html>
</xsl:template>
<xsl:variable name="dash">-</xsl:variable>
<xsl:template match="course">
<tr>
<td>
<xsl:value-of select="course_num" />
</td>
<td>
<xsl:value-of select="@acad_year" />
</td>
<td>
<xsl:value-of select="course_group" />
</td>
<td>
<xsl:value-of select="course_head/person/person_name" />
</td>
<td>
<xsl:value-of select="concat(meeting/meeting_begin, $dash, meeting/meeting_end)" />
</td>
<td>
<xsl:value-of select="meeting/location" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
我知道我需要一个for-each循环,但不知道如何把它放到TD中。我已经尝试了以前问题的许多不同的解决方案,但它们不起作用。任何帮助将不胜感激,并记住我是一个菜鸟,所以具体。感谢!!!!!!!
答案 0 :(得分:0)
如何获取名为course_num的所有内容并将它们放入一个单元格中 每个用逗号分隔
更改:
<td>
<xsl:value-of select="course_num" />
</td>
为:
<td>
<xsl:for-each select="course_num">
<xsl:value-of select="." />
<xsl:if test="position()!=last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
</td>