اعمال قالب ها (XSLT Apply)
عنصر «اعمال قالب ها (xsl:apply-templates)» قانون قالب را اجرا می کند. «قالب (Template)» یعنی الگوی نمایش یک گره. «گره فرزند (Child Node)» همان زیرآیتم ها است؛ مثل پوشه های داخل پوشه.
کارِ اصلی <xsl:apply-templates>
این عنصر، قالب گره فعلی یا فرزندهایش را اجرا می کند. با ویژگی «select» می توانیم فقط بعضی فرزندها را پردازش کنیم، یا ترتیب را تعیین کنیم.
نمونه کامل از منبع
در این نمونه، ابتدا همه cdها پردازش می شوند. سپس برای title و artist دوباره اعمال قالب می کنیم.
<?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>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="cd">
<p>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="artist"/>
</p>
</xsl:template>
<xsl:template match="title">
Title: <span style="color:#ff0000">
<xsl:value-of select="."/></span>
<br />
</xsl:template>
<xsl:template match="artist">
Artist: <span style="color:#00ff00">
<xsl:value-of select="."/></span>
<br />
</xsl:template>
</xsl:stylesheet>
گام های عملی
- برای ریشه یک قالب بساز.
- <xsl:apply-templates/> را داخل قالب ریشه بگذار.
- برای گره های هدف، قالب جدا تعریف کن.
- با select فقط فرزندهای دلخواه را پردازش کن.
نکته: اگر select نگذاری، همه فرزندها پردازش می شوند. برای مطالعه مرتبط، xsl:choose و xsl:for-each را ببین.
هشدار: ترتیب خروجی به ترتیب select بستگی دارد. همیشه ترتیب را مشخص کن.
برای مرور سریع، از این صفحه اعمال قالب ها استفاده کن.
جمع بندی سریع
- قالب ها نمایش هر گره را تعریف می کنند.
- apply-templates قالب های مناسب را اجرا می کند.
- select دامنه و ترتیب را کنترل می کند.
- بدون select، همه فرزندها پردازش می شوند.