Xml 如何改进我的慕尼黑分组XSLT?
感谢和的帮助 我能够得到一个XSL模板,它将这个XMLXml 如何改进我的慕尼黑分组XSLT?,xml,xslt,xslt-1.0,muenchian-grouping,Xml,Xslt,Xslt 1.0,Muenchian Grouping,感谢和的帮助 我能够得到一个XSL模板,它将这个XML <bookings> <entry> <event>Christmas</event> <attendees>2</attendees> </entry> <entry> <event>Halloween</event> <attendees>2</attend
<bookings>
<entry>
<event>Christmas</event>
<attendees>2</attendees>
</entry>
<entry>
<event>Halloween</event>
<attendees>2</attendees>
</entry>
<entry>
<event>Easter</event>
<attendees>1</attendees>
</entry>
<entry>
<event>Easter</event>
<attendees>1</attendees>
</entry>
</bookings>
圣诞节
2.
万圣节前夕
2.
复活节
1.
复活节
1.
…输入此输出:
圣诞节:1次预订
万圣节:1次预订
复活节:2次预订
这是我的XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="data">
<xsl:apply-templates select="bookings"/>
</xsl:template>
<xsl:key name="bookings-within-period" match="bookings/entry" use="event" />
<xsl:template match="bookings">
<xsl:for-each select="entry[count(. | key('bookings-within-period', event)[1]) = 1]">
<p>
<xsl:value-of select="concat(event,': ')" />
<xsl:value-of select="count(key('bookings-within-period', event))" />
<xsl:text> booking(s)</xsl:text>
</p>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
预订
如何使用此函数来计算与会者的和
这是我需要的输出:
圣诞节:1个预订,2个与会者
万圣节:1人预订,2人参加
复活节:2个预订,2个与会者
谢谢任何能帮忙的人 使用key('bookings-in-period',event)
为您提供每个组中的条目
元素,然后sum(key('bookings-in-period',event)/attenders)
为您提供每个组中与会者的总和
您需要在每个
的中执行此操作,其中每个组中的第一个条目
元素是上下文节点,以防不清楚。使用键('bookings-in-period',event)
为您提供每个组中的条目
元素,然后求和(key('bookings-in-period',event)/attenders)
为您提供每组与会者的总数
您需要在中为每个
执行此操作,其中每个组中的第一个条目
元素是上下文节点,以防不清楚。增强型XSLT如下所示:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="data">
<xsl:apply-templates select="bookings"/>
</xsl:template>
<xsl:key name="bookings-within-period" match="bookings/entry" use="event" />
<xsl:template match="bookings">
<xsl:for-each select="entry[count(. | key('bookings-within-period', event)[1]) = 1]">
<p>
<xsl:value-of select="concat(event,': ')" />
<xsl:value-of select="count(key('bookings-within-period', event))" />
<xsl:text> booking(s), </xsl:text>
<xsl:value-of select="sum(key('bookings-within-period', event)/attendees)" />
<xsl:text> attendee(s)</xsl:text>
</p>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
预订,
与会者
其中,我们对所有与会者进行了总结,增强的XSLT如下所示:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="data">
<xsl:apply-templates select="bookings"/>
</xsl:template>
<xsl:key name="bookings-within-period" match="bookings/entry" use="event" />
<xsl:template match="bookings">
<xsl:for-each select="entry[count(. | key('bookings-within-period', event)[1]) = 1]">
<p>
<xsl:value-of select="concat(event,': ')" />
<xsl:value-of select="count(key('bookings-within-period', event))" />
<xsl:text> booking(s), </xsl:text>
<xsl:value-of select="sum(key('bookings-within-period', event)/attendees)" />
<xsl:text> attendee(s)</xsl:text>
</p>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
预订,
与会者
我们有
来总结所有与会者非常好,非常感谢!最后一件事:假设每个
也有一个
节点。那么可以按日期对输出进行排序吗?太好了,非常感谢!最后一件事:假设每个
也有一个
节点。那么可以按日期对输出进行排序吗?谢谢。我想我以前试过,但结果我看不到所有的树都是木头。我刚刚扔了一枚硬币,纳文赢了,所以我把他的答案标记为正确的;-)谢谢我想我以前试过,但结果我看不到所有的树都是木头。我刚刚扔了一枚硬币,纳文赢了,所以我把他的答案标记为正确的;-)