最新のWeb開発のチュートリアル
 

XSLT <xsl:for-each> Element


<xsl:for-each>要素を使用すると、XSLTでループ行うことができます。


<xsl:for-each>要素

XSL <xsl:for-each>要素は、指定されたノードセットのすべてのXML要素を選択するために使用することができます。

<?xml version="1.0" encoding="UTF-8"?>
<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>
»それを自分で試してみてください

Note:値selectた属性は、XPath式です。 XPath式は、ファイルシステムをナビゲートするように動作します。 ここで、スラッシュ(/)サブディレクトリを選択します。


出力のフィルタリング

我々はまたに基準を追加することによって、XMLファイルからの出力をフィルタリングすることができselect中の属性<xsl:for-each>要素。

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

法的フィルタ演算子は次のとおりです:

  • =(等しいです)
  • != (not equal)
  • &LT; 未満
  • &GT; より大きい

調整後のXSLスタイルシートを見てみましょう:

<?xml version="1.0" encoding="UTF-8"?>
<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>
»それを自分で試してみてください