좋은 질문, +1.
이 변환 :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="thing[position() mod 3 = 1]">
<ul>
<xsl:apply-templates mode="inGrpoup" select=
".|following-sibling::*[not(position() > 2)]"/>
</ul>
</xsl:template>
<xsl:template match="thing" mode="inGrpoup">
<li><xsl:value-of select="."/></li>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
다음과 같은 XML 문서에 적용했을 때 :
<things>
<thing>1</thing>
<thing>2</thing>
<thing>3</thing>
<thing>4</thing>
<thing>5</thing>
<thing>6</thing>
<thing>7</thing>
<thing>8</thing>
</things>
가 (연속 세 그룹으로 일) 원하는, 올바른 결과을 생성합니다
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul>
<li>7</li>
<li>8</li>
</ul>
설명 세 thing
요소 그룹의 제 thing
일치
템플릿 패턴. (초기 시동 thing
의 처리와는 다른 방법으로) thing
요소 그룹을 처리하는 방식을 사용
가 한번 결정 하였다.