글 수 19
[출처 : 미니의 XML DeveloperGroup (http://www.word.pe.kr)]
<xsl:for-each>를 살펴봤는데요.. 여러개의 엘리먼트를 가져와서 루프를 돌면서 출력하는 것이었습니다.
이런 경우, 항상 나오는 것이 바로 정렬입니다.
리스트를 출력할 때는 어떤 순서로 정렬하느냐가 중요한 요소가 되지요.
XSLT에서는 for-each 내부에서 정렬을 위해 사용할 수 있는 sort라는 것이 있습니다.
그럼<xsl:sort>에 대해서 간단히 살펴보겠습니다.
<xsl:sort> 엘리먼트
출력 결과를 정렬하기 위해서는 XSL 파일의 <xsl:for-each>엘리먼트 내에 <xsl:sort>엘리먼트를 추가하면 됩니다.
간단하죠.. ^^
<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>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<xsl:sort select="artist"/>
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
15번째 줄에 <xsl:sort select="artist"/> 구문이 추가되어 있습니다.
select 속성의 값으로 지정된 artist에 따라 정렬해서 결과를 출력하라는 것입니다.
결과를 확인해 보면 다음과 같이 나타납니다.
My CD Collection
| Title | Artist |
|---|---|
| Romanza | Andrea Bocelli |
| One night only | Bee Gees |
| Empire Burlesque | Bob Dylan |
| Hide your heart | Bonnie Tyler |
| The very best of | Cat Stevens |
| Greatest Hits | Dolly Parton |
| Sylvias Mother | Dr.Hook |
| Eros | Eros Ramazzotti |
| Still got the blues | Gary Moore |
| Unchain my heart | Joe Cocker |
| Soulsville | Jorn Hoel |
| For the good times | Kenny Rogers |
| Midt om natten | Kim Larsen |
| Pavarotti Gala Concert | Luciano Pavarotti |
| 1999 Grammy Nominees | Many |
| The dock of the bay | Otis Redding |
| When a man loves a woman | Percy Sledge |
| Maggie May | Rod Stewart |
| Stop | Sam Brown |
| Black angel | Savage Rose |
| Picture book | Simply Red |
| Bridge of Spies | T`Pau |
| Red | The Communards |
| Private Dancer | Tina Turner |
| Tupelo Honey | Van Morrison |
| Big Willie style | Will Smith |
그럼 Title을 기준으로 정렬하려면 어떻게 해야 할까요?
별로 어렵지 않겠죠 ^^
답은 다음과 같습니다. : <xsl:sort select="title"/>
한번씩 해보세요.. 그럼 다음 강의에서 뵙겠습니다.
좋은 하루 되세요~~ from 미니










프로그래밍언어

XML 


