2015-11-11 78 views
0

我對XML和XSLT非常陌生,想要弄清楚如何將所有名爲course_num的文件放到一個單元格中,每個單元之間用逗號隔開(每個人都會有自己的細胞與他們的課程數內)將元素連接到表中的單個節點XSLT

這是我的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> 

我知道我需要換每個循環但不知道如何把它放到TD ..我已經嘗試了許多不同的解決方案,但他們不能正常工作。任何幫助將不勝感激,並記住我是一個菜鳥,所以要具體。謝謝!!!!!!!

回答

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> 
+0

哇,這是簡單。它完美的作品。我不知道爲什麼我這麼掛在嘴邊。非常感謝!!!!!!! – Jthunter24