2016-08-19 2 views
0

지금까지 레코드를 포함하는 테이블을 구성하기 위해 forloops를 사용했지만 나머지 데이터를 세 번째 열에 삽입하는 방법을 찾을 수 없기 때문에 테이블을 완성 할 수 없습니다 그 내부 다른 노드 이후. 내가여러 노드에서 테이블로 데이터 추출

enter image description here

코드 아래 원하는 것은

enter image description here

있어 무엇

XML

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="grades.xsl"?> 
<school> 
<subject Id="3311"> 
<className>English</className> 
<studentList> 
<student id="1001">Lisa Simpson</student> 
<student id="1002">Barney Rubble</student> 
<student id="1003">Donald Duck</student> 
</studentList> 
<classwork> 
<assignment name="Final Exam"> 
<mark studId="1001">38</mark> 
<mark studId="1002">21</mark> 
<mark studId="1003">20.5</mark> 
</assignment> 
</classwork> 
</subject> 
</school> 

XSL (지금까지)

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <html> 
    <body> 
    <h2>My CD Collection</h2> 
    <table border="1"> 
     <tr bgcolor="#9acd32"> 
     <th style="text-align:left">Student</th> 
     <th style="text-align:left">ID</th> 
     <th style="text-align:left">Mark</th> 
     </tr> 

     <xsl:for-each select="//student"> 
     <tr> 
     <td><xsl:value-of select="."/></td> 
     <td><xsl:value-of select="./@id"/></td> 
     </tr> 
     </xsl:for-each> 

    </table> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 
+0

덕분에 많이 :) 사전에 도와 주셔서 –

답변

0

당신은 다음과 같은 스타일을 시도 할 수 있습니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs" 
    version="2.0"> 

    <xsl:strip-space elements="*"/> 
    <xsl:output indent="yes"/> 

    <!-- key for the target node for the mark column -->   
    <xsl:key name="kID" match="mark" use="@studId"/> 

    <xsl:template match="/"> 
     <table> 
      <!-- set table headers --> 
      <tr> 
       <th>Student</th> 
       <th>ID</th> 
       <th>Mark</th> 
      </tr> 
     <!-- Loop through each target node --> 
     <xsl:for-each select="school/subject/studentList/student"> 
      <tr> 
       <td><xsl:value-of select="."/></td> 
       <td><xsl:value-of select="@id"/></td> 
       <!-- get the value using keys --> 
       <td><xsl:value-of select="key('kID', @id)"/></td> 
      </tr> 
     </xsl:for-each> 
     </table> 
    </xsl:template> 

</xsl:stylesheet> 
관련 문제