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