我有一種記分牌,想要計算出勝出的隊伍。但不幸的是,我無法計算id值的出現次數。下面是示例XML文檔:選擇元素內的XSL計數()
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="winner.xsl" ?>
<wm>
<game>
<team id='de' />
<team id='fr' />
<result>4:2</result>
</game>
<game>
<team id='us' />
<team id='de' />
<result>4:2</result>
</game>
<game>
<team id='de' />
<team id='fr' />
<result>3:2</result>
</game>
<game>
<team id='de' />
<team id='fr' />
<result>1:3</result>
</game>
</wm>
,並在xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="wm/game/result">
<xsl:variable name="tore1" select="substring-before(.,':')"/>
<xsl:variable name="tore2" select="substring-after(.,':')"/>
<xsl:choose>
<xsl:when test="$tore1 > $tore2">
<xsl:value-of select="../team[1]/@id"/><br />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="../team[2]/@id"/><br />
</xsl:otherwise>
</xsl:choose>
我設置一個遊戲的贏家,通過比較結果的目標,選擇團隊[1 ]或團隊[2]。輸出是:
de
us
de
fr
但現在我堅持計數的國家出現。如果我設置計數()的XPath表達式像
<xsl:value-of select="count(../team[1]/@id)" />
它導致:
1
1
1
1
而且
<xsl:value-of select="count(../team[@id = 'de'])"/>
的選擇語句外做了相同的輸出。我想有以下輸出
2 de
1 us
1 fr
感謝您的幫助。
這是一個分組問題,它是一個計數問題之前。你有參賽隊伍的名單嗎?還是你需要按照輸入中列出的任何球隊對比賽進行分組? –