이 변환 : 예로서, 지정된 형식으로 임의의 XML 문서에 대해 수행
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:param name="pnumRows" select="3"/>
<xsl:variable name="vnumCells" select="count(/*/*/NAME)"/>
<xsl:variable name="vcellsPerRow"
select="ceiling($vnumCells div $pnumRows)"/>
<xsl:template match="node2">
<table>
<xsl:apply-templates select="NAME[position() mod $vcellsPerRow = 1]"/>
</table>
</xsl:template>
<xsl:template match="NAME">
<tr>
<xsl:apply-templates mode="copy" select=
". | following-sibling::*[not(position() >= $vcellsPerRow)]"/>
</tr>
</xsl:template>
<xsl:template match="NAME" mode="copy">
<td><xsl:value-of select="."/></td>
</xsl:template>
</xsl:stylesheet>
는을 다음
<node1>
<node2>
<NAME>name1</NAME>
<NAME>name2</NAME>
<NAME>name3</NAME>
<NAME>name4</NAME>
<NAME>name5</NAME>
<NAME>name6</NAME>
<NAME>name7</NAME>
<NAME>name8</NAME>
<NAME>name9</NAME>
<NAME>name10</NAME>
</node2>
</node1>
는 원하는 결과를 산출 : 테이블과 세 행, 첫 번째 두 행의 셀 수가 같고 마지막 행의 길이가 더 짧을 수 있습니다.
<table>
<tr>
<td>name1</td>
<td>name2</td>
<td>name3</td>
<td>name4</td>
</tr>
<tr>
<td>name5</td>
<td>name6</td>
<td>name7</td>
<td>name8</td>
</tr>
<tr>
<td>name9</td>
<td>name10</td>
</tr>
</table>
XML의 형식은 무엇입니까? "XSL 표"란 무엇을 의미합니까? –
"XSL 표"란 XSLT 형식의 HTML 표를 의미합니다. 아래 링크를 이용해 주셔서 감사합니다. –
좋은 질문 (+1). 완벽한 해결책은 내 대답을 참조하십시오. –