在XSLT中的条件下更改计数值

时间:2016-11-08 08:30:01

标签: html xml xslt

我是XSLT的新手我有以下xml文件(pets.xml)

<?xml version = "1.0"?>
<?xml-stylesheet type="text/xsl" href = "pets.xsl"?>
<stores>
<store>
<animal kind="cat">cat</animal>
<animal kind="dog">dog</animal>
<animal kind="bird">bird</animal>
</store>
<store>
<animal kind="cat">cat</animal>
<animal kind="bird">bird</animal>
</store>
<store>
<animal kind="dog">dog</animal>
<animal kind="bird">bird</animal>
</store>
</stores>

我需要做的是生成一个html页面,其中包含一个表格,显示有多少宠物商店拥有某种动物,结果应该是

-------------------
|animal| nb stores|
-------------------
|cat   |   2      |
-------------------
|dog   |   2      |
-------------------
|bird  |   3      |
-------------------

我在XSLT中所做的是:

<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:stylesheet version = "2.0" 
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
>
<xsl:template match= "/">
<html>
<body>
<table border="1">
<tr>
<td>animal</td>
<td>nb stores</td>
</tr>
<xsl:variable name="count" select="0"/>
<xsl:for-each select="stores/store/animal">
<xsl:variable name="an" select="@kind"/>
<!--<xsl:for-each select="stores/store/animal">
<xsl:variable name="newan" select="@kind"/>
<xsl:when test = "$newan=$an">
<xsl:variable name="count" select="$count+1"/>
</xsl:when>-->
<tr>
<td>
<xsl:value-of select="$an"/>
</td>
<td><xsl:value-of select="$count"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html> 
</xsl:template>
</xsl:stylesheet>

评论的部分是每当我找到一个商店放置在变量中的动物时递增计数器 但是它给出了问题,所以我对它进行了评论,现在我得到的是一张列出动物类型和nb商店的表格,我全都是零。 如果您能告诉我如何在满足条件时更改计数变量。 提前谢谢。

0 个答案:

没有答案