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

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

عنصر <xsl:for-each>

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

<?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>My CD Collection</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>My CD Collection</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 را مشاهده کنید،و نتایج را مشاهده کنید