XSLT <xsl:for-each>
-
定义
<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>我的CD收藏</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>名称</th> <th>艺术家</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 表达式。 XPath 表达式的工作方式类似于浏览文件系统。 其中正斜杠(/)选择子目录。
-
过滤输出
我们还可以通过在 <xsl:for-each> 元素的 select 属性中添加一个条件来过滤 XML 文件的输出。<xsl:for-each select="catalog/cd[artist='Bob Dylan']">
查看转换结果<?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>我的CD收藏</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>名称</th> <th>艺术家</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>