我有两个 for-each 语句迭代,我希望输出在表中是垂直格式而不是水平格式。
目前它输出:
a b c
1 2 3
我希望它输出:
a 1
b 2
c 3
有人可以帮忙吗?这是 XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="no"/>
<xsl:key name="names" match="Niche" use="."/>
<xsl:key name="niche" match="row" use="Niche"/>
<xsl:template match="/">
<table border="1">
<xsl:for-each select="//Niche[generate-id() = generate-id(key('names',.)[1])]">
<xsl:sort select="."/>
<td>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
<td><tr></tr></td>
<xsl:for-each select="//row[generate-id(.)=generate-id(key('niche', Niche)[1])]">
<xsl:sort select="Niche"/>
<td>
<xsl:value-of select="count(key('niche', Niche))"/>
</td>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
示例 XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="sample.xsl" ?>
<root>
<row>
<Niche>a</Niche>
</row>
<row>
<Niche>b</Niche>
</row>
<row>
<Niche>b</Niche>
</row>
<row>
<Niche>c</Niche>
</row>
<row>
<Niche>c</Niche>
</row>
<row>
<Niche>c</Niche>
</row>
</root>