عنصر <xsl:apply-templates> في XSLT
التعريف والاستخدام
يمكن تطبيق عنصر <xsl:apply-templates> على العنصر الحالي أو أبناء العنصر الحالي.
إذا أضفنا سمة select لعنصر <xsl:apply-templates>، فإنه سيقوم بمعالجة فقط الأبناء الذين تتطابق قيمتهم مع القيمة المحددة من قبل السمة.
النحو
<xsl:apply-templates select="expression" mode="name"> <!-- Content:(xsl:sort|xsl:with-param)* --> </xsl:apply-templates>
سمة
سمة | قيمة | وصف |
---|---|---|
select | عبارة | اختياري. يحدد العقدة التي يتم معالجتها. يمكن استخدام نجمة لاختيار مجموعة العقدات بأكملها. إذا تم تخطي هذا السمة، فإن جميع عقدات العقدة الحالية يتم اختيارها. |
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 في المستند باستخدام عنصر h1 حيث تم تعيين خاصية 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>