توابع (XSLT/XPath Functions)
در XSLT/XPath، «تابع (Function)» یک ابزار آماده است. با آن روی متن، عدد، توالی و گره کار می کنیم. پیشوند پیش فرض توابع fn: است، اما معمولاً لازم نیست بنویسیم.
کتابخانه مشترک توابع
XSLT 2.0، XPath 2.0 و XQuery 1.0 یک کتابخانه مشترک دارند. بنابراین، استفاده یکنواخت می شود و یادگیری ساده تر پیش می رود.
نمونه عملی با چند تابع مهم
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/catalog">
<html>
<body>
<p>
تعداد کتاب ها:
<xsl:value-of select="count(book)"/>
</p>
<xsl:for-each select="book">
<div class="book">
<h3>
<xsl:value-of select="concat(string(title), ' - ', string(author))"/>
</h3>
<p>
شروع عنوان:
<xsl:value-of select="substring(title, 1, 5)"/>
</p>
<p>
جایگاه در فهرست:
<xsl:value-of select="position()"/>
</p>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
دسته های پرکاربرد توابع
رشته (String): با string، concat، substring، contains متن را می سازیم و می بریم. مثل برش تکه ی از جمله.
عدد (Numeric): با number، abs، floor، round محاسبه کن. شبیه نمره های مدرسه که گرد می شوند.
توالی (Sequence): با count، index-of، distinct-values مدیریت کن. مانند لیست اسم ها در کلاس.
گره (Node): با name، local-name، namespace-uri هویت گره را می فهمیم. مثل شناسه دانش آموز.
گام های عملی شروع
- XML نمونه آماده کن.
- قالب XSLT پایه بساز.
- تابع رشته ای اضافه کن.
- تابع شمارشی مثل
countتست کن. - خروجی را در مرورگر ببین.
نکته: اگر با URI کار می کنی، resolve-uri کمک می کند. اگر دنبال الگو هستی، از matches و replace استفاده کن.
مطالب مرتبط در UnderDevelops
برای شناخت تگ ها، صفحه المان ها (XSLT Elements) را ببین. همچنین درباره اجرای قالب ها به اعمال قالب ها سر بزن.
جمع بندی سریع
- توابع XSLT کارها را سریع می کنند.
fn:پیش فرض است و اغلب حذف می شود.concatوsubstringبرای متن عالی اند.countشمارش را دقیق انجام می دهد.- از دسته ها درست انتخاب کن.