عنصر <xsl:variable> XSLT

تعریف و استفاده

علامت <xsl:variable> برای تعریف متغیرهای محلی یا جهانی استفاده می‌شود.

نکته:اگر متغیر به عنوان یک علامت سطح بالا تعریف شده باشد، متغیر جهانی است، در غیر این صورت متغیر محلی است.

نکته:یک بار که مقادیر متغیر تنظیم شد، نمی‌توان آن را تغییر یا ویرایش کرد!

توجه:شما می‌توانید از محتوای علامت <xsl:variable> یا از ویژگی select برای اضافه کردن مقادیر به متغیر استفاده کنید!

نحوه‌ی نوشتن

<xsl:variable
name="name"
select="expression">
  <!-- Content:template -->
</xsl:variable>

ویژگی

ویژگی مقدار توضیحات
name name ضروری. نام متغیر را مشخص کنید.
select expression اختیاری. مقادیر متغیر را تعریف کنید.

مثال

مثال 1

اگر ویژگی select تنظیم شده باشد، علامت <xsl:variable> نمی‌تواند هیچ محتوایی داشته باشد. اگر ویژگی select شامل یک رشته متنی باشد، باید رشته‌ها بین قید‌ها قرار گیرند.

دو مثال زیر برای تعیین مقادیر متغیر "color" به "red" استفاده می‌کنند:

<xsl:variable name="color" select="'red'" />
<xsl:variable name="color" select='"red"' />

مثال 2

اگر <xsl:variable> فقط شامل ویژگی name باشد و محتوایی نداشته باشد، مقادیر متغیر خالی است:

<xsl:variable name="j" />

مثال 3

مثال زیر از محتوای <xsl:variable> برای تعیین مقادیر متغیر "header" استفاده می‌کند:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="header">
  <tr>
  <th>عنصر</th>
  <th>توضیحات</th>
  </tr>
</xsl:variable>
<xsl:template match="/">
  <html>
  <body>
  <table>
    <xsl:copy-of select="$header" />
    <xsl:for-each select="reference/record">
    <tr>
    <xsl:if category="XML">
      <td><xsl:value-of select="element"/></td>
      <td><xsl:value-of select="description"/></td>
    </xsl:if>
    </tr>
    </xsl:for-each>
  </table>
  <br />
  <table>
    <xsl:copy-of select="$header" />
    <xsl:for-each select="table/record">
    <tr>
    <xsl:if category="XSL">
      <td><xsl:value-of select="element"/></td>
      <td><xsl:value-of select="description"/></td>
    </xsl:if>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>