通過@name
試試這個樣式表,它使用Muenchian Method到組event
元素:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- based on
http://stackoverflow.com/a/16509871/2115381
from Dimitre Novatchev
-->
<xsl:key name="kEventVal" match="event" use="@name"/>
<xsl:template match="*">
<xsl:apply-templates select=
"event[generate-id() = generate-id(key('kEventVal',@name)[1])]"/>
</xsl:template>
<xsl:template match="event">
<xsl:value-of select="@name"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="count(key('kEventVal',@name))"/>
<xsl:text> participant</xsl:text>
<xsl:if test="count(key('kEventVal',@name)) > 1 ">
<xsl:text>s</xsl:text>
</xsl:if>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>
這將產生以下的輸出:
christmas: 1 participant
halloween: 1 participant
easter: 2 participants
謝謝!將嘗試。只有一個問題:「 '做了什麼?那是一種外部插件嗎? –
Tintin81
2013-05-13 10:59:53
這是兩個問題。 ;-) 1.這會生成類似於以屬性名稱爲鍵的映射和所有匹配的事件元素作爲值的列表。 (比如看看http://www.w3schools.com/xsl/el_key.asp。2.不需要插件或擴展。這個xslt-1.0。 – 2013-05-13 11:08:36
http://www.w3.org/TR/xslt#關鍵 – 2013-05-13 14:00:48