XSLT
تبدیل اسناد XML به HTML و قالبهای دیگر با XSLT
XSLT چیست؟
XSLT مخفف eXtensible Stylesheet Language Transformations است؛ زبانی برای تبدیل اسناد XML به XML دیگر، HTML، متن ساده یا هر قالب دیگری.
با XSLT میتوانید:
- عناصر را جابهجا، حذف یا فیلتر کنید
- XML را به HTML آماده نمایش تبدیل کنید
- خروجیهای متفاوت از یک داده واحد بسازید
XSLT خودش یک سند XML است! یعنی با همان قوانین سینتکس XML نوشته میشود.
XSLT چگونه کار میکند؟
XSLT از الگوها (Templates) استفاده میکند. هر الگو میگوید: «وقتی به این عنصر رسیدی، اینطور رفتار کن»:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>کاتالوگ CD</h2>
<table border="1">
<tr>
<th>عنوان</th>
<th>خواننده</th>
</tr>
<xsl:for-each select="CATALOG/CD">
<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>
تجزیه کد XSLT
| عنصر XSLT | کارکرد |
|---|---|
<xsl:stylesheet> | عنصر ریشه سند XSLT با فضای نام XSL |
<xsl:template match="/"> | الگو: از ریشه سند شروع کن |
<xsl:for-each select="..."> | حلقه: روی هر عنصر مطابق تکرار کن |
<xsl:value-of select="..."> | مقدار عنصر انتخابی را در خروجی بگذار |
<xsl:sort select="..."> | مرتبسازی نتایج |
<xsl:if test="..."> | شرط: فقط اگر شرط برقرار بود |
اتصال XSLT به سند XML
در سند XML، با دستورالعمل xml-stylesheet فایل XSLT را معرفی میکنیم:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cd_catalog.xsl"?>
<CATALOG>
...
</CATALOG>
حالا وقتی فایل XML را در مرورگر باز کنید، مرورگر خودش XSLT را اجرا میکند و نتیجه HTML را نمایش میدهد!
مثال با شرط و مرتبسازی
<xsl:for-each select="CATALOG/CD">
<xsl:sort select="ARTIST"/>
<xsl:if test="PRICE > 10">
<tr>
<td><xsl:value-of select="TITLE"/></td>
</tr>
</xsl:if>
</xsl:for-each>
این کد CDها را بر اساس خواننده مرتب میکند و فقط آنهایی که قیمت بالای ۱۰ دارند نمایش میدهد.
دقت کنید در عبارت
test="PRICE > 10" از موجودیت > استفاده کردیم چون کاراکتر > در XML معنی خاص دارد!کجا از XSLT استفاده میشود؟
- نمایش داده XML در وبسایتها
- تبدیل بین فرمتهای مختلف داده (مثلاً XML به CSV)
- تولید گزارش و اسناد از دادههای XML
- در مرورگر، سرور (PHP/Java) یا ابزارهای خط فرمان
این مبحث بخشی از دوره آموزش کامل XML است.