2009-10-21 3 views
0

내가 목록으로 구성된 XML 문서를 말해봐 여러 열로 HTML 테이블에 XML 목록을 변환하는 항목 요소 (주문한 상단 - 하단 - 왼쪽 - 오른쪽 또는 왼쪽 - 오른쪽 - 상단 - 하단)의 순간에 안달이 난다.사용 XSLT는

<table> 
    <tr> 
    <td>First Item</td> 
    <td>Second Item</td> 
    </tr> 
    <tr> 
    <td>Third Item</td> 
    <td>4</td> 
    </tr> 
    <tr> 
    <td>Five</td> 
    <td></td> 
    </tr> 
</table> 

나는 나는 다음과 같은 XSLT 변환 단일 열이있는 테이블을 얻을 수 있습니다 이해하지만 여러 열을 얻는 방법을 알아낼 수 없습니다.

<table> 
    <xsl:for-each select="Items"> 
    <tr> 
     <td><xsl:value-of select="Item"/></td> 
    </tr> 
    </xsl:for-each> 
</table> 

답변

1

이 시도 : 이것에 대한

<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/Items"> 
    <table> 
     <xsl:for-each select="Item[position() mod 2 = 1]"> 
     <xsl:variable name="pos" select="position() - 1" /> 
     <tr> 
      <td><xsl:value-of select="."/></td> 
      <td><xsl:value-of select="//Item[position() = ($pos * 2) + 2]"/></td> 
     </tr> 
     </xsl:for-each> 
    </table> 
    </xsl:template> 
</xsl:stylesheet> 
+0

쿨 감사합니다. 하나의 질문이지만, 이미 html 테이블 앞에 오는 다른 요소를 선택하기 위해 템플릿을 사용하고 있습니다. 다른 템플릿 내에서 템플릿을 중첩 할 수없는 것처럼 보입니다. 맞습니까? –

+1

중첩을 어떻게 의미합니까? 템플릿을 다른 템플릿에서 호출 할 수 있습니다 (예 : 'xsl : call-template'을 사용합니다. –

+0

@mdresser, divo가 말했듯이 문제없이 해결할 수 있습니다. 원할 경우이 질문을 업데이트하거나 다른 질문을 열어 전체 문제를 설명하십시오. –

관련 문제