عنصر <xsl:apply-templates> XSLT

تعریف و استفاده

عنصر <xsl:apply-templates> می‌تواند به عنصر فعلی یا فرزندان آن عنصر یک قالب را اعمال کند.

اگر به عنصر <xsl:apply-templates>属性 select اضافه کنیم، آنگاه تنها فرزندان که با مقدار این ویژگی مطابقت دارند پردازش می‌شوند. می‌توانیم از ویژگی select برای تعیین ترتیب پردازش فرزندان استفاده کنیم.

قوانین دستور زبان

<xsl:apply-templates select="expression" mode="name">
  <!-- Content:(xsl:sort|xsl:with-param)* -->
</xsl:apply-templates>

ویژگی

ویژگی مقدار توضیح
select عبارت اختیاری. تعیین نقطه‌ای که باید پردازش شود. ستاره (asterisk) برای انتخاب کل مجموعه‌ی گره‌ها استفاده می‌شود. اگر این属性省کته شود، همه‌ی فرزندان گره‌ی فعلی انتخاب می‌شوند.
mode نام اختیاری. اگر چندین روش برای یک عنصر مشابه وجود دارد، می‌توان با استفاده از mode آنها را تشخیص داد.

مثال

مثال 1

با استفاده از علامت h1 هر عنصر title را احاطه کنید:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="title">
  <h1><xsl:apply-templates/></h1>
</xsl:template>
</xsl:stylesheet>

مثال 2

با استفاده از علامت h1 همه عناصر title که به عنوان فرزند message هستند را احاطه کنید:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="message">
  <h1><xsl:apply-templates select="title"/></h1>
</xsl:template>
</xsl:stylesheet>

مثال 3

با استفاده از علامت h1 همه فرزندان message که mode آنها تنظیم شده به "big" است را احاطه کنید:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="message">
  <h1><xsl:apply-templates select="*" mode="big"/></h1>
</xsl:template>
</xsl:stylesheet>