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

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

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

اگر ویژگی select را به علامت <xsl:apply-templates> اضافه کنیم، آن فقط فرزندان با مقدار مشخص شده را پردازش می‌کند. می‌توان از ویژگی 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

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

<?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

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

<?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>