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