مرتب سازی (XSLT <sort>)
در XSLT، «مرتب سازی (Sort)» یعنی چیدن خروجی با ترتیب مشخص. عنصر «<xsl:sort>» کلید مرتب سازی را تعیین می کند. «XPath» هم زبان آدرس دهی گره هاست؛ مثل آدرس کلاس و نیمکت.
قرار دادن <xsl:sort> داخل for-each
برای مرتب سازی، یک <xsl:sort> را داخل <xsl:for-each> بگذار. مقدار ویژگی select می گوید بر اساس کدام عنصر بچینیم.
<?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>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>
توضیح کوتاه select در sort
ویژگی select مشخص می کند بر اساس کدام مقدار مرتب شود. مثلا select="artist" یعنی بر اساس نام خواننده بچین.
گام های عملی سریع
- قالب اصلی با
match="/"بساز. - حلقه
xsl:for-eachروی رکوردها بگذار. - داخل حلقه،
xsl:sortبا select مناسب اضافه کن. - با
xsl:value-ofمقادیر را در جدول بنویس.
نکته: مقدار select یک عبارت XPath است و مثل مسیر پوشه ها عمل می کند.
هشدار: اگر مسیر اشتباه باشد، ترتیب تغییری نمی کند یا خروجی نادرست می شود.
مسیر ادامه: for-each و if
برای تکرار، صفحه xsl:for-each را ببین. برای شرطی سازی ردیف ها، سراغ xsl:if برو.
جمع بندی سریع
- <xsl:sort> فقط داخل <xsl:for-each> می آید.
- select کلید مرتب سازی را تعیین می کند.
- XPath مسیر عنصر مرتب سازی است.
- پس از sort، خروجی همان جا مرتب می شود.