عنصر <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

همه فرزندان message با استفاده از ویژگی 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>