عنصر <xsl:for-each> XSLT

عنصر <xsl:for-each> به شما اجازه می‌دهد در XSLT به دنبال چرخه‌ها بگردید.

عنصر <xsl:for-each>

عنصر <xsl:for-each> می‌تواند برای انتخاب هر یک از عناصر در مجموعه مشخص شده استفاده شود.

<?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="/">
  <html>
  <body>
    <h2>مجموعة دی وی دی من</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

نکته:select مقدار این خاصیت یک عبارت XPath است. این عبارت به همان روشی کار می‌کند که یک سیستم فایل را جستجو می‌کند، جایی که بارز می‌تواند برای انتخاب زیرپوشه‌ها استفاده شود.

نتیجه تبدیل بالا به این شکل است:

این فایل XML را مشاهده کنید,این فایل XSL را مشاهده کنید، ونتیجه را مشاهده کنید.

فیلتر نتایج

با اضافه کردن یک شرط انتخابی به عنصر <xsl:for-each>، ما همچنین می‌توانیم نتایج خروجی از فایل XML را فیلتر کنیم.

<xsl:for-each select="catalog/cd"[artist='Bob Dylan']">

عملگرهای فیلتر مجاز:

  • =  (برابر)
  • != (برابر نیست)
  • < (کوچکتر)
  • > (بزرگتر)
<?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="/">
 <html>
  <body>
  <h2>مجموعة دی وی دی من</h2>
  <table border="1">
   <tr bgcolor="#9acd32">
      <th>Title</th>
      <th>Artist</th>
   </tr>
   <xsl:for-each select="catalog/cd[artist='Bob Dylan']">
   <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
   </tr>
   </xsl:for-each>
  </table>
 </body>
 </html>
</xsl:template>
</xsl:stylesheet>

نتیجه تبدیل بالا به این شکل است:

این فایل XML را مشاهده کنید,این فایل XSL را مشاهده کنید,و نتایج را مشاهده کنید.