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