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